2013-12-10 55 views
4

下面是否會捕獲StartNew()內發生的異常?它似乎不是。嘗試/趕在Task.Factory.StartNew之外工作嗎?

try 
    { 
     Task.Factory.StartNew(() => 
     { 
     //do something 
     }); 
    } 
    catch(Exception ex) 
    { 
     //log it 
    } 
+0

'以下內容是否會發生在StartNew()'內部發生的異常:否。嘗試將在新任務開始後立即退出。 – phadaphunk

回答

0

它不能因爲當try退出任務尚未完成。沒有辦法知道未來是否會發生例外情況。

任務的重點是啓動異步獨立計算。

+0

此外,該任務在另一個線程上執行,因此即使它在try塊結束之前完成,也無關緊要。 –

+0

是的。我試圖表明一個合乎邏輯的矛盾,爲什麼它不可能出現這種情況。你不需要知道TPL就可以得出結論。 – usr