如何处理/杀死C#中的锁定线程

bar*_*777 2 c# multithreading thread-safety

我已经看到很多关于如何杀死锁定线程的问题,我看到的每个答案都说不会杀死线程,甚至不使用Thread.Abort,只需使用良好的编程习惯来处理线程应该停止的时候.

我的问题是,我被困在使用一个我无法控制的旧第三方库,并且偶尔会锁定,使用相当多的100%CPU并且永不放弃.Thread.Abort不会阻止这一点.我找不到任何办法阻止这一点.

我找到的最好的"解决方法"是使用委托和.AsyncWaitHandle.WaitOne(10000,false);

代码将在超时后从这一点继续,但仍然运行的任何线程继续运行并耗尽我的所有CPU.

我该如何处理这种情况?如果这个第三方库锁定,我需要一种方法来杀死它.

谢谢你的时间,本

Pet*_*ter 5

如果您需要一般性答案,请使用易于锁定的代码进行单独的处理.根据需要杀死并重新启动该过程.随着您对所面临的确切问题的更多了解,可能会有更好的解决方案.