我在处理应用程序(WPF)中的异常时遇到麻烦。Task.Factory.Start的全局未捕获异常处理程序新任务
我使用任务很多,我想有一个全局异常处理程序的所有异常(甚至内部任务)。
我已经尝试了多个处理程序:
AppDomain.CurrentDomain.UnhandledException
DispatcherUnhandledException
这些作品以及在应用程序(而不是任务中)
对于从任务异常抛出的异常我试图用
TaskScheduler.UnobservedTaskException
但是这是在经过很长时间后才开始的。我认为这是因为GarbageCollector,所以我找到了一个解决方案(这不起作用)。此解决方案如下所示:
.ContinueWith(c =>
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
},TaskContinuationOptions.OnlyOnFaulted);
请问我该如何处理这些异常?我想避免每次运行任务时处理它。全球处理程序是我的首选。
这可能帮助:HTTP://计算器。 com/questions/19164556/how-to-catch-observe-an-unhandled-exception-thrown-a-task – null1941
我试过这个。答案对我没有帮助,因为a)在这种情况下,我无法使用wait/await(这会消除我的调用中的异步)b)自定义调度程序不起作用 – Tomasz