进程

1、获取进程信息

进程的相关信息包括:进程ID、进程名称、占用内存空间大小、启动时间、文件名、进程优先级别等等

获取系统所有进程:Process.GetProcesses();

2、启动和停止进程

  • 需要先创建Process的实例
  • 设置StartInfo属性指定启动进程的信息
  • 使用Start启动进程
  • 使用CloseMainWindow方法或Kill方法停止进程

注意:CloseMainWindow方法针对的是有图形界面的进程,该方法向进程的主窗体发生一个关闭请求,其行为与用户在界面中单击按钮命令的效果相同,这样有机会再清除操作界面数据时提示用户保存没有保存的数据;如果进程没有用户界面,可以调用进程的Kill方法,该方法将在不提示保存已更改数据的情况下,立即停止进程。

3、进程的相关属性

  • StartInfo:设置进程的启动信息,比如要启动的进程名称、进程使用到的窗口状态等
  • WorkingSet64:进程所在物理内存
  • StartTime:进程启动时间
  • HasExited:进程是否退出
  • ExitCode:进程退出编码,0则退成功退出
  • EnableRaisingEvents:设置进程终止时是否触发进程退出事件(事件:Exited)

4、进程的相关方法

  • Start():启动进程
  • WaitForInputldle():等待进程进入空闲状态;指等待进程启动到完成,以免在为启动完成的时候操作进程
  • WaitForExit():阻塞当前线程,直到进程正常退出
  • CloseMainWindow():关闭进程(正常关闭,用于有用户界面的程序,有存在保存的数据,对用户进行提醒)
  • Kill():强制停止进程(用于没有用户界面的程序)
  • Close():释放进程占用的资源

5、进程的简单应用

        private void ProcessMethod()
        {
            //声明并实例化进程组件
            Process p = new Process();
            //设置进程要启动的程序
            p.StartInfo = new ProcessStartInfo("notepad");
            //启动进程
            p.Start();
            //获取分配物理内存
            long memory = p.WorkingSet64;
            //无限期地等待进程启动程序完毕,,阻塞当前线程
            p.WaitForInputIdle();
            //获取进程启动时间
            DateTime startTime = p.StartTime;

            Console.WriteLine("进程启动时间:"+startTime.ToString());
            Thread.Sleep(1000);

            //设置是否激发触发进程终止的事件
            p.EnableRaisingEvents = true;
            //设置进程终止事件
            p.Exited += new EventHandler((obj, arg) => 
            {
                Console.WriteLine("进程已终止");
            });
            //关闭进程(针对有界面的程序)
            p.CloseMainWindow();
            //try
            //{
            //    //针对无界面的程序
            //    p.Kill();
            //}
            //catch { }

            //无限期等待进程退出,阻塞当前线程
            p.WaitForExit();
            if (p.HasExited && p.ExitCode == 0)
            {
                Console.WriteLine("进程已成功退出");
            }
            //释放Process组件所有资源
           // p.Close();
        }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值