C#--使用Process类kill进程
程序员文章站
2022-05-26 18:42:27
C#–使用Process类kill进程1、背景static变量static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。static成员变量的初始化顺序按照定义的顺序进行初始化。static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附...
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 对象关联的进程。
本文地址:https://blog.csdn.net/qq_41924554/article/details/109964122
上一篇: python淘宝抢购脚本程序实现