【发布时间】:2009-10-17 17:12:58
【问题描述】:
我有一个包含本机代码和托管代码的混合进程,在 Windows server 2003 上运行。
当我从进程资源管理器中终止我的进程时,它会进入 100% cpu 的状态并在此状态下保持一段时间(有时甚至 10 分钟),然后才会消失。在此期间,我不能“杀死”它或做任何其他事情。
当我通过进程资源管理器的终止通过进程终止进程时,进程会发生什么情况? 我相信这不会调用任何析构函数,那么是什么导致了这种 cpu 使用率?
谢谢, 丹
【问题讨论】:
-
他说
Windows server 2003。 -
抱歉,错过了,谢谢。您是否使用其他工具(例如资源工具包中的 kill.exe、带有 /F 选项的 taskkill.exe 或 pskill.exe)获得相同的行为?
-
澄清一下,当你优雅地退出程序时,它不会表现出同样的高 CPU 行为?
-
感谢所有 cmets 和想法。使用所有各种 kill/exit 方法,我确实得到了相同的行为。使用 Process Explorer 在我终止进程后,我无法显示线程堆栈。 100% CPU 时间是内核时间,所以我认为资源释放是一个很好的起点。当我弄清楚这一点时,我会发表另一条评论。