[英]Why is the TaskScheduler.UnobservedTaskException does not trigger?
[英]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.