下面是否會捕獲StartNew()內發生的異常?它似乎不是。嘗試/趕在Task.Factory.StartNew之外工作嗎?
try
{
Task.Factory.StartNew(() =>
{
//do something
});
}
catch(Exception ex)
{
//log it
}
下面是否會捕獲StartNew()內發生的異常?它似乎不是。嘗試/趕在Task.Factory.StartNew之外工作嗎?
try
{
Task.Factory.StartNew(() =>
{
//do something
});
}
catch(Exception ex)
{
//log it
}
不可以。創建新任務後,您的try塊會退出。
雖然你可以捕獲異常。請參閱: Catching Error when using Task.Factory 瞭解更多信息。
它不能因爲當try
退出任務尚未完成。沒有辦法知道未來是否會發生例外情況。
任務的重點是啓動異步獨立計算。
此外,該任務在另一個線程上執行,因此即使它在try塊結束之前完成,也無關緊要。 –
是的。我試圖表明一個合乎邏輯的矛盾,爲什麼它不可能出現這種情況。你不需要知道TPL就可以得出結論。 – usr
'以下內容是否會發生在StartNew()'內部發生的異常:否。嘗試將在新任務開始後立即退出。 – phadaphunk