第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

并行運(yùn)行兩個(gè)異步任務(wù)并在.NET 4.5中收集結(jié)果

并行運(yùn)行兩個(gè)異步任務(wù)并在.NET 4.5中收集結(jié)果

C#
素胚勾勒不出你 2019-08-17 15:50:27
并行運(yùn)行兩個(gè)異步任務(wù)并在.NET 4.5中收集結(jié)果我已經(jīng)嘗試了一段時(shí)間來(lái)獲得我認(rèn)為可以簡(jiǎn)單地使用.NET 4.5的東西我想同時(shí)啟動(dòng)兩個(gè)長(zhǎng)時(shí)間運(yùn)行的任務(wù),并以最佳的C#4.5(RTM)方式收集結(jié)果以下作品,但我不喜歡它,因?yàn)椋何蚁隨leep成為一個(gè)異步方法,所以它可以是await其他方法它看起來(lái)很笨拙 Task.Run()我認(rèn)為這甚至根本不使用任何新的語(yǔ)言功能!工作代碼:public static void Go(){     Console.WriteLine("Starting");     var task1 = Task.Run(() => Sleep(5000));         var task2 = Task.Run(() => Sleep(3000));     int totalSlept = task1.Result + task2.Result;     Console.WriteLine("Slept for a total of " + totalSlept + " ms");}private static int Sleep(int ms){     Console.WriteLine("Sleeping for " + ms);     Thread.Sleep(ms);     Console.WriteLine("Sleeping for " + ms + " FINISHED");     return ms;}非工作代碼:更新:這實(shí)際上是有效的,并且是正確的方法,唯一的問(wèn)題是 Thread.Sleep此代碼不起作用,因?yàn)檎{(diào)用Sleep(5000)立即啟動(dòng)任務(wù)運(yùn)行,因此Sleep(1000)在完成之前不會(huì)運(yùn)行。這是真的,即使Sleep是async,我不是太快使用await或打電話.Result。我想也許有一種方法可以Task<T>通過(guò)調(diào)用方法來(lái)獲得非運(yùn)行,async這樣我就可以調(diào)用Start()這兩個(gè)任務(wù),但我無(wú)法弄清楚如何Task<T>通過(guò)調(diào)用異步方法來(lái)獲取。public static void Go(){     Console.WriteLine("Starting");     var task1 = Sleep(5000);    // blocks     var task2 = Sleep(1000);     int totalSlept = task1.Result + task2.Result;     Console.WriteLine("Slept for " + totalSlept + " ms");}private static async Task<int> Sleep(int ms){     Console.WriteLine("Sleeping for " + ms);     Thread.Sleep(ms);     return ms;}
查看完整描述

3 回答

?
明月笑刀無(wú)情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊

async Task<int> LongTask1() { ... }

async Task<int> LongTask2() { ... }

...

{

   Task<int> t1 = LongTask1();

   Task<int> t2 = LongTask2();

   await Task.WhenAll(t1,t2);

   //now we have t1.Result and t2.Result

}


查看完整回答
反對(duì) 回復(fù) 2019-08-17
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

雖然你的Sleep方法是異步的,但Thread.Sleep不是。異步的整個(gè)想法是重用單個(gè)線程,而不是啟動(dòng)多個(gè)線程。因?yàn)槟咽褂脤?duì)Thread.Sleep的同步調(diào)用阻止,所以它無(wú)法正常工作。

我假設(shè)這Thread.Sleep是你想要做的簡(jiǎn)化。您的實(shí)際實(shí)現(xiàn)可以編碼為異步方法嗎?

如果您確實(shí)需要運(yùn)行多個(gè)同步阻塞調(diào)用,請(qǐng)查看我認(rèn)為的其他地方!


查看完整回答
反對(duì) 回復(fù) 2019-08-17
  • 3 回答
  • 0 關(guān)注
  • 370 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)