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

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

Task 中的異常屬性何時可以有值?

Task 中的異常屬性何時可以有值?

C#
尚方寶劍之說 2021-11-07 20:03:05
我想知道“continueWhith”什么時候有例外。我做了一個這樣的代碼。Task.Factory.StartNew(() =>{   if(HasException())       throw new Exception("Exception");   // Logic}).ContinueWith(x =>{   // Do something to UI.}, CancellationToken.None, TaskContinuationOptions.NotOnFaulted, _uiScheduler).continueWith(x =>{   if (x.Exception.IsNotNull()) // Exception handling here.     ShowExceptionMessage(x.Exception);            }我原以為最后 continueWith 任務會出現(xiàn)異常,但事實并非如此。最后continueWith任務中沒有異常是對的嗎?我想知道如何在 continueWith 中設置異常屬性。
查看完整描述

1 回答

?
牛魔王的故事

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

最后continueWith任務中沒有異常是對的嗎?

是的,因為它是“對 UI 做點什么”任務的延續(xù)。x.Exception如果第二個任務失敗,只會有一個例外。

事實上,我不希望你達到任何一個延續(xù),因為你的第一個任務總是出錯,第一個延續(xù)明確說只有在它沒有出錯的情況下才執(zhí)行。

備擇方案:

  • 通過第二個任務的結(jié)果傳播異常(如果有)

  • 將兩個延續(xù)添加到原始任務,而不是鏈接它們。(這可能是您最初的意圖,以便將故障路徑和無故障路徑分開。在這種情況下,將兩個延續(xù)附加到第一個任務,并TaskContinuationOptions.OnlyOnFaulted用于第二個延續(xù) - 那么您不需要在全部。)

  • 在原始任務中保留一個局部變量,以便您可以從第二個延續(xù)中獲得該變量

理想情況下,我建議使用 async/await 而不是所有的 continuation 傳遞。它往往會使事情變得簡單得多。


查看完整回答
反對 回復 2021-11-07
  • 1 回答
  • 0 關注
  • 188 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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