windows系统process的kill方法和close方法区别

举报
风中的叶子 发表于 2019/12/25 16:55:29 2019/12/25
【摘要】 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。