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

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

調(diào)用同步代碼的選項(xiàng)

調(diào)用同步代碼的選項(xiàng)

C#
楊__羊羊 2021-08-29 17:52:51
我覺(jué)得我已經(jīng)閱讀了數(shù)以千計(jì)的 SO 問(wèn)題和博客文章以及關(guān)于這些東西的 MSDN 文章,但我仍然沒(méi)有完全“理解”它。所以請(qǐng)幫幫我。在我的工作中,我們有一個(gè) ASP.NET 應(yīng)用程序,它必須從同步方法中獲取數(shù)據(jù)。我無(wú)法控制這種方法,也不知道它是如何實(shí)現(xiàn)的。我有一個(gè)異步控制器方法,它正在調(diào)用 3 個(gè)其他異步服務(wù),我可以“一路向下”使用異步(是的?。?。但最后一個(gè)不是異步的,而且可能永遠(yuǎn)不會(huì)。更糟糕的是,它需要最長(zhǎng)的時(shí)間。我希望能夠?yàn)樗蟹?wù)啟動(dòng)任務(wù),并等待它們。從我能夠拼湊起來(lái)的情況來(lái)看,我有以下選項(xiàng)可供我使用,我想我了解大部分后果,但在必要時(shí)希望得到確認(rèn)和澄清。所以,給定方法:public async Task<Thing> GetThing(){    var task1 = GetProp1Async(); // etc.    var syncResult = ......    myThing.Prop1 = await task1;    myThing.SyncProp = .......     return myThing;}我填寫(xiě)這些點(diǎn)的選項(xiàng)可能是:選項(xiàng)1:只需同步調(diào)用該方法。這將阻塞我當(dāng)前的線程。我的其他任務(wù)都可以運(yùn)行,我可以稍后等待它們,但我將在這里阻塞,在我的異步方法中。var syncResult = GetSyncResult();選項(xiàng) 2:使用 Task.Run().Result。我知道這根本不理想,因?yàn)槲視?huì)生成一個(gè)新線程,同時(shí)也會(huì)阻塞我的原始線程,我認(rèn)為這是最糟糕的情況,對(duì)吧?但是,我不會(huì)遇到死鎖問(wèn)題,因?yàn)槲艺趶?qiáng)制創(chuàng)建一個(gè)新線程,對(duì)嗎?var syncResult = Task.Run(() => GetSyncResult()).Result;選項(xiàng) 3:我認(rèn)為這是最好的選擇?我的異步代碼不會(huì)阻塞線程,但我仍在生成一個(gè)新線程來(lái)執(zhí)行同步工作。所以,這感覺(jué)就像是凈零增益。我仍然有 1 個(gè)線程在做事情,可能還在等待,但這仍然可能是我最好的選擇?var syncResult = await Task.Run(() => GetSyncResult());選項(xiàng) 4:我仍然不明白 ConfigureAwait(false),但我可以嘗試一下。這對(duì)我有什么好處?似乎有些帖子說(shuō)“在所有地方都這樣做!” 有人說(shuō)“不要這樣做以避免死鎖”。其他人說(shuō),如果你這樣做,就“一路向下”。好吧,我不知道 GetSyncResult() 做了什么,所以我不知道它是否在幕后調(diào)用了任何異步內(nèi)容(我的意思是,它可能沒(méi)有,但我不確定)。那么它會(huì)回來(lái)咬我嗎?var syncResult = await Task.Run(() => GetSyncResult()).ConfigureAwait(false);那么我最好的選擇是什么?我錯(cuò)過(guò)了任何選擇嗎?更糟糕的是,我錯(cuò)過(guò)了最佳選擇嗎?我知道這些問(wèn)題已經(jīng)被問(wèn)到并得到了死亡的回答,但是,我只是沒(méi)有把我的點(diǎn)聯(lián)系起來(lái),我肯定需要一些幫助。
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 200 瀏覽

添加回答

舉報(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)