暂停/中止线程为什么不好?

use*_*667 7 .net c# parallel-processing multithreading thread-safety

我的线程如何工作的模型是有些ThreadManager给每个线程转一圈.当它是一个线程时,它会执行几行代码.

暂停一个线程,是不是只有ThreadManager(暂时)停止允许该线程转弯?

要中止一个线程,不能ThreadManager只是永远不会给那个线程另一个转弯?

有什么问题?

Ale*_*Aza 12

MSDN引用暂停线程:

暂停它时,您无法知道线程正在执行的代码.如果在安全权限评估期间挂起线程时挂起线程,则可能会阻止AppDomain中的其他线程.如果在执行类构造函数时挂起线程,则会阻止AppDomain中尝试使用该类的其他线程.死锁很容易发生.

中止的线程可能导致不可预测的情况.有一篇很好的文章:http://www.bluebytesoftware.com/blog/2009/03/13/ManagedCodeAndAsynchronousExceptionHardening.aspx