c# - 使线程将异常传播到上层线程

标签 c# multithreading exception threadpool

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

这给我们带来了很多麻烦,因为我们设计了一个有序的线程链,所以如果一个线程没有很好地完成,那么后面的所有链都会被打乱。

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

最佳答案

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

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

关于c# - 使线程将异常传播到上层线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11332686/

相关文章:

c# - 如何在 parallel.for 上传递不同的范围?

linux - 在 Linux 中创建多线程

c# - 以指定的时间间隔运行方法c#

multithreading - linux上的gcc相当于微软的关键部分是什么?

python - 在 Python 中捕获 PyCharm 停止信号

java - 无效 key 异常 : Illegal Key Size - Java code throwing exception for encryption class - how to fix?

c# - ReSharper 10 测试运行器无法找到从外部文件引用的 AppSettings

java - 如何在 Xamarin 表单中为 BLE 拆分和发送 >20 字节的数据?

c++ - 返回一个整数以确定显示哪个 switch 语句

c# - 在单元测试类中使用依赖注入(inject)