我如何杀死一个拒绝死的Windows进程

运行Windows Server 2003,我有一些进程,当遇到几分钟的100%cpu死亡。

使用Process Explorer来查看进程线程我总是看到2个线程,其中一个线程使用很多cpu并卡住!endthreadex

有什么想法可能导致这些进程不死的这么久? 我有什么办法强迫杀死这样一个过程?

当您尝试杀死一个进程时,Windows将首先尝试通过正常的代码path正常结束它,然后强制closures它。 之所以陷入100%的CPU,最有可能是因为你在拆卸时有一个循环或类似的东西,等待发生什么事情(比如数据库连接完全closures),而没有Thread.Sleep。 可能它所等待的东西永远不会发生(由于杀死它而造成的exception退出),所以它一直被卡住,直到Windows决定强行将其取消。 检查你的关机代码的过程,你应该find这个罪魁祸首。

在这个阶段适合SO,我会想。