使线程将异常传播到上线程

时间:2012-07-04 16:25:53

标签: c# multithreading exception threadpool

如果我错了,请纠正我,但我注意到通过ThreadPool.QueueUserWorkItem(GoneFishing)从池中选择的线程显然“吞噬”了该线程内发生的任何异常。

由于我们设计了一个有序的线程链,这给我们带来了很多麻烦,所以如果一个线程没有很好地完成,那么下面的所有链都会被加扰。

以最恰当的方式处理这个问题最方便的方法是什么?

1 个答案:

答案 0 :(得分:3)

如果考虑使用.NET 4.0,Task抛出的任何异常会在Task加入时自动传播到父线程。看看这里:http://msdn.microsoft.com/en-us/library/dd997415.aspx

对于其他相关解决方案,请检查此问题:Safe to throw an exception created on another thread C#