C#--使用Process类kill进程
1、背景
static变量
- static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
- static成员变量的初始化顺序按照定义的顺序进行初始化。
static方法
- 一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
- 但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。
2、操作:
public class jinCheng
{static Process p;static void RunPythonScript(string Arguments){p = new Process();string path = @"F:\hand\leapmotion_gestures-0.3\leapmotion_gestures-0.3\" + sArgName;p.StartInfo.FileName = @"D:\Python\python.exe";p.StartInfo.Arguments = path;p.StartInfo.CreateNoWindow = true;p.StartInfo.UseShellExecute = false;p.Start(); }//kill掉一个进程private void OnApplicationQuit(){if(p != null){p.Kill();Console.WriteLine("进程关闭成功!");}}
}
3、原理:
Process.Kill 方法:
- 命名空间:System.Diagnostics程序集:System.Diagnostics.Process.dll
Kill
方法强制终止进程。- Kill方法以异步方式执行。 调用方法后
Kill
,调用 WaitForExit 方法以等待进程退出,或检查 HasExited 属性以确定进程是否已退出。 - 如果调用,则由进程编辑的数据或分配给进程的资源可能会丢失
Kill
。Kill
导致异常的进程终止,只应在必要时使用。 CloseMainWindow 启用进程的有序终止,并关闭所有窗口,因此更适合使用接口的应用程序。 如果 CloseMainWindow 失败,可使用Kill
终止进程。Kill
是终止没有图形界面的进程的唯一方法。
例外
- Win32Exception
- 无法终止相关联的进程。
- NotSupportedException
- 你正尝试为远程计算机上运行的进程调用 Kill()。 该方法仅对本地计算机上运行的进程可用。
- InvalidOperationException
- 没有与此 Process 对象关联的进程。
C#--使用Process类kill进程相关推荐
- Python Process类开启多层级进程杀不死问题解决(从父进程杀死子进程)
Python Process类开启多层级进程杀不死问题 问题描述 问题分析 解决方案 问题描述 在使用python multiprocess包下的Process打开子进程,并在打开的子进程中再打开一个 ...
- java实现进程管理,Java调用批处理或可执行文件和Runtime、Process类实现Java版进程管理器...
Java调用批处理或可执行文件 用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现.下面是一种比 ...
- python 多进程 调用模块内函数_进程创建fork()和multiprocessing模块Process类
一.进程VS程序 一个人穿上军装去打仗就是战士,战士需要武器.战场等资源.一个人去种田就是农民,农民需要土地.锄头等资源. 编写完毕的代码,安静的呆在磁盘上,称之为程序.代码要运行就得加载到内存,正在 ...
- kill 进程_Node.js 进程平滑离场剖析
使用 Node.js 搭建 HTTP Server 已是司空见惯的事.在生产环境中,Node 进程平滑重启直接关系到服务的可靠性,它的重要性不容我们忽视.既然是平滑重启,就涉及到新旧进程的接替过渡: ...
- process 类 java_编写可执行jar——java的Process类的使用(二)
你知道怎么在控制台使用ping吗?那你知道怎么在java中使用ping吗? 1.批处理文件 批处理文件大家一定不陌生.接触最多的应该就是tomcat中的start.bat或者start.sh了.bat ...
- 34 进程 pid ppid 并发与并行,阻塞与非阻塞 join函数 process对象 孤儿进程与僵尸进程...
进程与程序 一个正在被运行的程序就称之为进程,是程序具体执行过程,一种抽象概念 进程来自于操作系统 多进程:多个正在运行的程序. 测试: import timewhile True: time.sle ...
- Java Process类的浅学习
Java Process类的浅学习 文章分类:Java编程 今天用了下java.lang.Process类,只是初步的学习,并没有深入实践,因为感觉它的用途并不是很大,偶尔才可能用上,如果要经常使用它 ...
- Runtime类与Process类
package jinchen.cn;/** Runtime类除了观察内存使用量外,可以直接使用runtime 类运行本机的可执行程序* Process exec(String command) 在单 ...
- process java类_Java中Process类的用途是什么?
Java.lang.Process是Object类的子类,可以描述由Runtime类的exec()方法启动的进程. 进程和对象控制进程并获取有关该进程的信息. Process类是抽象类,因此无法实例化 ...
最新文章
- Confd+Consul 配置文件动态生成
- php跨域cookie共享使用方法
- adc0808温度换算公式_温湿度传感器的三种模拟量换算关系
- 服务器虚拟机网卡怎么配置文件,VMWARE复制虚拟机之后,需重新配置网卡(CENTOS 6)...
- php 我已阅读并同意 判断,phb.php
- [转]ColorMatrixFilter--颜色矩阵滤镜
- 华为云苏光牛:生态建设是数据库产业发展非常重要的一环
- BZOJ4278 : [ONTAK2015]Tasowanie
- 强悍的命令行 —— 磁盘空间的查看与磁盘空间的释放
- C# 委托与事件(delegate)
- 将csv文件存入mysql数据库_将csv文件导入到mysql数据库
- DIV+CSS两种盒子模型
- 新浪微博开放平台php sdk,新浪微博开放平台
- Tomcat: Error starting child 原因以及处理方法
- Python数据分析(五) —— 绘制直方图
- PR标题动画模板 创意动态多行标题注释字幕条pr模板
- 图文并茂详细教程之-- 用pixhawk飞控组装一台F450四轴无人机(下)
- hibernate级联操 同时向2张表插入数据(一对多的关联,一个简单的例子说明)
- 星星之火可以燎原,“鲲鹏生态之城”启示录
- Oracle CBO RBO
热门文章
- PHP梯度计算金额,数字图像的梯度概念以及计算(the gradient of the image)
- 【Spark】Spark基础教程
- 合理运用计算机技术学校,浅议在学校管理中计算机技术合理应用
- RSA非对称加密传输---前端加密解密(VUE项目)
- Jmeter基础系列4-创建一个HTTP请求实例
- Android挂载系统分区执行mount和remount
- PyQt5基本控件详解之QTextEdit(五)
- leetcode-1786
- Oracle错误:ORA-01400
- Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本