C#ThreadPool QueueUserWorkItem异常处理

Aks*_*Aks 7 .net c# multithreading exception-handling

每当我的ThreadPool中的一个线程抛出异常时,我的代码似乎都停留在线程函数内的catch块中.如何将异常恢复到主线程?

Unm*_*kar 6

最佳做法是您的后台线程不应抛出异常.让他们自己处理他们的例外.

理想情况下,您应该将代码包装在try-catch块中的线程上执行的方法中,并处理catch块中的异常.不要从catch块中重新抛出它.

阅读本文了解更多详情.http://www.albahari.com/threading/#_Exception_Handling

如果要从后台线程更新UI,可以使用Control.InvokeRequired属性和Control.Invoke方法执行此操作.有关详细信息和示例,请参阅MSDN链接.