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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用async / await執(zhí)行多個任務(wù)

使用async / await執(zhí)行多個任務(wù)

開滿天機 2019-08-06 13:17:35
使用async / await執(zhí)行多個任務(wù)我正在使用完全異步的API客戶端,也就是說,每個操作都返回Task或者Task<T>,例如:static async Task DoSomething(int siteId, int postId, IBlogClient client){     await client.DeletePost(siteId, postId); // call API client     Console.WriteLine("Deleted post {0}.", siteId);}使用C#5 async / await運算符,啟動多個任務(wù)并等待它們?nèi)客瓿傻恼_/最有效方法是什么:int[] ids = new[] { 1, 2, 3, 4, 5 };Parallel.ForEach(ids, i => DoSomething(1, i, blogClient).Wait());要么:int[] ids = new[] { 1, 2, 3, 4, 5 };Task.WaitAll(ids.Select(i => DoSomething(1, i, blogClient)).ToArray());由于API客戶端在內(nèi)部使用HttpClient,我希望這會立即發(fā)出5個HTTP請求,并在每個請求完成時寫入控制臺。
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經(jīng)驗 獲得超5個贊

由于您調(diào)用的API是異步的,因此該Parallel.ForEach版本沒有多大意義。你不應(yīng)該.WaitWaitAll版本中使用,因為這將失去并行性如果調(diào)用者是異步的另一種選擇是Task.WhenAll在執(zhí)行后使用SelectToArray生成任務(wù)數(shù)組。第二種選擇是使用Rx 2.0


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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