【发布时间】:2016-01-06 12:16:25
【问题描述】:
我在处理应用程序 (WPF) 中的异常时遇到问题。
我经常使用 Tasks,我希望为所有异常(甚至是任务内部)提供一个全局异常处理程序。
我尝试了多个处理程序:
AppDomain.CurrentDomain.UnhandledException
DispatcherUnhandledException
这些适用于应用程序中抛出的异常(不在任务中)
对于我尝试使用的任务的例外情况
TaskScheduler.UnobservedTaskException
但这是在很大延迟后运行的。我认为这是因为 GarbageCollector,所以我找到了一种解决方案(也不起作用)。该解决方案如下所示:
.ContinueWith(c =>
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
},TaskContinuationOptions.OnlyOnFaulted);
您能告诉我应该如何处理这些异常吗?我想避免每次运行任务时都处理它。我更喜欢全局处理程序。
【问题讨论】:
-
我试过这个。答案对我没有帮助,因为a)在这种情况下我不能使用等待/等待(这会从我的调用中删除异步)b)自定义调度程序不起作用
-
我也遇到了同样的问题你有解决办法吗?