以下是不是多餘的?正在等待的任務等於拋出異常的故障任務在ContinueWith
await blob.CopyToBlobAsync(newBlob).
ContinueWith((t) => { if (t.IsFaulted) throw t.Exception; });
好像沒有ContinueWith調用,異常會直接拋出?
什麼時候會使用continueWith而不是等待任務?
下面是一樣的嗎?
await myTask.ContinueWith(t => {'do something with the task t'});
和
await myTask;
'do something with the task MyTask'
我有一種情況,我在一個循環中創建和啓動任務,並使用信號限制併發運行任務的數量。我繼續關於這些任務,並檢查它們是否失敗,如果是這樣,則向一個ConcurrentBag添加一個ID,這樣我可以看到是否全部成功。我無法從我的continueWith委託中正確地得到正確的門的異常到我的out任務,即運行循環的任務。 (這聽起來很愚蠢,還是應該加上澄清的代碼)。 – 2013-04-22 19:47:40
我建議您查看TPL數據流。這聽起來像是對你的情況有用。 – 2013-04-22 20:28:37
ActionBlock對我的情況可能會很有趣。是否正確理解,我可以將其定義爲需要多次運行的代碼,只要有輸入就將輸入發佈給它。 – 2013-04-22 22:24:00