windows系统process的kill方法和close方法区别
【摘要】 windows系统process的kill方法和close方法区别
process类有close和kill方法,两者的区别是kill是立即终止进程实体,相当于在进程管理器窗口中执行结束进程操作;但process组件/对象的进行信息还在,包括进程关闭时间等信息可以查看。 close方法是释放组件/对象资源。这时进程不一定终止,但当前操作的组件/对象资源却被释放,后续无法再访问。
所以,我们要执行一个类似于进程管理窗口中结束进程的操作,需要先通过GetProcessesByName获取到一个进程组件/对象,再通过kill方法终止其关联的进程实体,最后调用close释放组件资源。顺序不能反,否则close释放组件资源后,就无法访问和进程实体关联的资源,造成异常。
如果要优雅的关闭进程,就需要给进程发送一个事件/消息,进程内部做逻辑处理,判断收到结束事件/消息后进行相关处理终止及释放处理,再自己退出(exit)进程。
MSDN关于几个方法的说明: GetProcessesByName(String) 创建新的 Process 组件的数组,并将它们与本地计算机上共享指定的进程名称的所有进程资源关联。 Start() 启动(或重用)此 Process 组件的 StartInfo 属性指定的进程资源,并将其与该组件关联。 Kill() 立即停止关联的进程。 Close() 释放与此组件关联的所有资源。
msdn process https://docs.microsoft.com/zh-cn/dotnet/api/system.diagnostics.process?view=netframework-4.8
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)