簡體   English   中英

觀察到的任務異常調用TaskScheduler.UnobservedTaskException

[英]Observed Task Exception calling TaskScheduler.UnobservedTaskException

我的應用程序是.NET 4.5,我有一個事件處理程序,用於記錄所有未觀察到的任務異常的錯誤。

TaskScheduler.UnobservedTaskException += (sender, e) => e.Exception.Handle(ex =>
{
    logger.Error(e.Exception);
    return false;
});

我返回false,這將關閉應用程序。 模擬.NET 4.0行為。

我的問題是,如果我觀察到結果,為什么這段代碼會調用該事件並因此導致我的應用程序崩潰?

try
{
    var resultado = httpClient.GetAsync('http://.....').Result;
}
catch (Exception ex)
{
    logger.Error(ex);
}

更新:經過一些調試后,我發現當我沒有調用.Result並導致問題時,我還有另一個Task。

您應該將UnobservedTaskExceptionEventArgs.Observed設置為true。 盡管有人可能會合理地相信這樣做,但在這一點上觀察結果沒有任何效果。

經過一些調試后,我發現當我沒有調用.Result並導致問題時,我還有另一個任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM