我的应用程序是 .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 并导致问题时我有另一个任务。