欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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 属性以确定进程是否已退出。
  • 如果调用,则由进程编辑的数据或分配给进程的资源可能会丢失 KillKill 导致异常的进程终止,只应在必要时使用。 CloseMainWindow 启用进程的有序终止,并关闭所有窗口,因此更适合使用接口的应用程序。 如果 CloseMainWindow 失败,可使用 Kill 终止进程。 Kill 是终止没有图形界面的进程的唯一方法。

例外

本文地址:https://blog.csdn.net/qq_41924554/article/details/109964122

相关标签: 进程 c# kill