gpt4 book ai didi

.NET Backgroundworker - 有没有办法让异常正常传递回主线程?

转载 作者:行者123 更新时间:2023-12-04 14:20:39 26 4
gpt4 key购买 nike

问题:重新使用 .NET Backgroundworker,有没有办法让异常正常传递回主线程?

背景:

  • 目前在我的 WinForms 应用程序中,我有通用异常句柄,如果(a)自定义应用程序异常然后呈现给用户,但不退出程序,以及(b)如果其他异常然后出现然后退出应用程序
  • 上面很好,因为我可以在应用程序的任何地方抛出适当的异常,并且呈现/处理一般处理
  • 最佳答案

    BackgroundWorker自动传回异常。它在 AsyncCompletedEventArgs.Error当您 Hook RunWorkerCompleted 时的属性事件。

    如果你愿意,你可以在这个事件处理程序中包装并重新抛出异常 - 记住有一个 bug在将导致“外部”异常被抛出的框架中,因为您正处于 Invoke 的中间.

    在 .NET 应用程序的后台线程上发生的异常是一个灾难性的错误,它可以并且将会导致整个进程中断;解决这个问题的唯一方法是将所有事件包装在一个 try-catch 块中并保存发生的任何异常,这正是 BackgroundWorker做。

    关于.NET Backgroundworker - 有没有办法让异常正常传递回主线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2535152/

    26 4 0