微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么时候我的进程被杀死了?

在Windows Server 2003上运行本机和托pipe代码的混合进程。

当我在进程资源pipe理器中杀死进程时,它会进入100%cpu状态,并在离开之前保持一段时间(有时甚至是10分钟)。 在这段时间里,我不能“杀”它或做任何事情。

当我通过进程pipe理器杀死进程来杀死进程时会发生什么样的情况? 我相信这不会调用任何析构函数,那么可能会导致这样的cpu使用?

谢谢,丹

非托pipepipe理(.Net)

exception错误对话框

混合托pipe/非托pipeassembly加载顺序

找出当前用户用户名 – 当多个用户login时

如何在Windows 10邮件应用程序中使用附件打开新邮件

Windows中的IP发现

在winforms应用程序中dynamic设置图片框的图像?

以编程方式访问graphics卡时钟

在Linux上使用z3 .NET绑定时的警告(“未知参数”model_completion'“)

禁用“Foo遇到问题,需要closures”窗口

显然有些东西试图继续运行,这是造成你所看到的挂起/死锁状态。 我可以尝试解释如何使用一些工具来试图找出正在发生的事情,但我应该只是推迟到你的主人… 苔丝 – 实验室高cpu挂起

我能够使用她描述的方法解决我自己的应用程序的问题。

尝试使用任务管理器的结束进程(在进程选项卡上),并尝试是否有任何区别,如果您选择任务管理器或Winternal的进程资源管理器中的杀死进程树,但我怀疑这会有所帮助。

这个过程应该是被立即杀死的,但是,有一些鬼鬼祟祟的方式。 如果你写了你自己的应用程序,我认为情况并非如此。 其他进程可能更不像你的被剥夺。 以快速刷新速度设置进程监视器并对cpu列进行排序。 你现在应该看到哪个进程导致了100%的问题。 最有可能的是:系统。

如果你使用了大量的内存, 当它总体上超过物理内存时,系统将重新组织(即将内存从磁盘移回物理内存)。 当我打开500多个标签后,我杀死Firefox时,会出现类似的行为(直到冻结我的系统),占用1.5GB的内存。 这种行为(缓慢地重新组织内存)在Microsoft Windows的更高版本中得到了改进。

更新:内部,proc expl。 调用TerminateProcess(等等),强制关闭所有句柄和线程。 MSDN API引用说: “TerminateProcess启动终止并立即返回,这将停止进程内的所有线程的执行,并要求取消所有未决的I / O。终止的进程不能退出,直到所有待处理的I / O已完成或取消。 。 这意味着很多:你的I / O可以阻止这个过程(尽管我不知道它是如何使你的过程达到100%,I / O通常不这样做)。

如果你有几个线程或其他资源没有被释放,那么它可能试图等待所有的东西在应用程序被终止之前被释放。

当你的应用程序被终止的时候,理想的情况是所有的资源都被释放,但是这就是为什么你应该确保你实现了Idispose接口来帮助解决这个问题,否则你可能会发现某个文件是打开的,不要重新打开,你唯一的选择就是重新启动。

当你试图杀死其他应用程序,或者仅仅是这个时,会发生这种情况吗?

你可能想简化你的程序,或者在它使用太多的资源之前尝试杀死它,并且看看你能否确定什么时候你会遇到这个问题,然后你可能会更好地了解你所做的是什么导致了这个行为。

你可以看看Process Explorer中的线程吗? 看看正在运行的是什么,特别是占用了100%的cpu。 看看你是否可以找到调用堆栈,并隔离特定的线程,甚至功能。 如果可以的话,在这里发表答案!

我的心理调试器是你有很多的资源仍然分配(即文件/注册处理,win32k对象等),内核正在清理它们。 当您使用Process Explorer破解应用程序时,资源使用情况看起来很高吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐