杀死一个处于阻塞状态的线程

时间:2012-01-06 21:06:31

标签: c# .net multithreading windows-phone-7 locking

我有一个线程会阻塞自己的某些锁。现在有些情况我想杀掉c#中的线程。 但问题是在thread.abort中并不能保证它会杀死线程。

2 个答案:

答案 0 :(得分:2)

如果你真的想要保证线程死亡,那么你最好的选择是开始一个新的过程。

有一个很好的主题,讨论了thread.abort here的许多可能陷阱。

答案 1 :(得分:1)

假设您想在遇到死锁时以确定的方式终止该线程。对 ? 是线程中止不保证终止,但使用Thread.Abort几乎总是一个坏主意。 如果有办法立即杀死线程,可能会导致更大的问题。如果这个线程已锁定某些资源,处于某个未提交的事务等中间,并且持有这些资源的线程突然被杀死,则其他线程无法对这些资源起作用。 我能给出的最好建议是修复死锁问题而不是屏蔽它。