C#中的Process类使用
有时候,用户在进行某个操作时,程序运行到某个阶段突然崩溃,我们需要让程序自动重启,重新执行用户之前的操作,当发现主程序还存在,就重启用户执行的附加程序。这时候Process就派上了用场。
控制台测试用例:
public class Program
{
/// <summary>
/// 保护的算法进程名称
/// </summary>
public static string keepProgessName = "iips.sdk.iauapp"; /// <summary>
/// 主算法进程名称
/// </summary>
public static string mainProcessName = "ipvs.sdk.vodapp.ips"; static void Main(string[] args)
{
#region 进程Process
//获取本机的进程
//var pros = Process.GetProcesses(".");
//打开txt文件
Process p = Process.Start(@"C:\Users\11456\Desktop/新建文本文档.txt");
//查看iips.sdk.iauapp进程是否存在,存在就为它注册退出时间
Process[] pro = Process.GetProcessesByName(keepProgessName);
if (pro.Count() > )
{
//获取或设置在进程终止时是否应引发 System.Diagnostics.Process.Exited 事件,true:引发
pro[].EnableRaisingEvents = true;
//进程推出后的执行时间
pro[].Exited += Process_Exited;
}
Console.ReadKey();
#endregion } private static void Process_Exited(object sender, EventArgs e)
{
//判断主进程是否存在,存在就再次自动重启程序
Process[] pro = Process.GetProcessesByName(mainProcessName);
if (pro.Count() > )
{
Process.Start(@"C:\源代码\imageEnhance\Dev\Dev3.2\AppProject\iImgEnh\binr\identification\iips.sdk.iauapp.exe");
} }
}
如图:

红色为子进程,蓝色为主进程。
当红框进程崩溃后,程序发现主程序正常运行,就重启服务。
C#中的Process类使用的更多相关文章
- C#的Process类调用第三方插件实现PDF文件转SWF文件
在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...
- C#的Process类的一些用法
c#之process类相关整理 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using Sys ...
- c#之process类相关整理
一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using System.Manageme ...
- 转:Process类的使用
转载自:http://www.oschina.net/code/snippet_119226_6188 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 ...
- C#使用Process类杀死进程,执行命令等
c#之process类相关整理 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using Sys ...
- C#中Process类的使用
本文来自: http://www.cnblogs.com/kay/archive/2008/11/25/1340387.html Process 类的作用是对系统进程进行管理,我们使用Process类 ...
- [转]Java中使用Runtime和Process类运行外部程序
帖子1: 使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序. 1. exec(String command) 2. exec(String comma ...
- 利用.Net中Process类调用netstat命令来判断计算端口的使用情况
利用.Net中Process类调用netstat命令来判断计算端口的使用情况: Process p = new Process();p.StartInfo = new ProcessStartInfo ...
- java中Runtime类和Process类的简单介绍
在java.lang包当中定义了一个Runtime类,在java中对于Runtime类的定义如下: Java code public class Runtime extends Object 每个 J ...
随机推荐
- 帝国cms7.5整合百度编辑器ueditor教程
1.根据自己使用的帝国cms版本编码下载对应的ueditor版本 下载地址 http://ueditor.baidu.com/website/download.html#ueditor 2.解压附件, ...
- java.net.MalformedURLException: unknown protocol: 异常
开门见山的说,第一个参数u,赋的值是 "D://123.txt",于是乎,报错了,java.net.MalformedURLException: unknown protocol: ...
- C#中将xml文件反序列化为实例时采用基类还是派生类的问题
基类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...
- pip install --upgrade urllib3==1.25.2
pip install --upgrade urllib3==1.25.2 pip 安装,更新模块 moudle_name:是对应的模块名:请自行更换为自己需要更新的模块名 查看所有可更新的模块: ...
- typescript - 5.接口
接口的作用: 在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用.接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不 ...
- SEO前端篇(二)关键词
首先要SEO的关键词最好放在网站首页index,并且网站域名选用顶级域名,最好是.com.现在很多后缀的域名不能备案,选择域名的时候一定要慎重. 域名解析的主机IP最好选择站点资源少的区域,可以用 爱 ...
- Python - Django - SweetAlert 插件的使用
SweetAlert Github:https://github.com/lipis/bootstrap-sweetalert 下载完后放入 /static/ 目录下 sweetalert.html: ...
- [LeetCode] 681. Next Closest Time 下一个最近时间点
Given a time represented in the format "HH:MM", form the next closest time by reusing the ...
- git删除远程.idea目录
git删除远程.idea目录 1. 登录 Administrator@USER-20180708AB MINGW32 / (master) $ git config --global user.nam ...
- docker笔记2--镜像容器基本使用
1 docker的安装 系统:centos7 (1)配置好yum (2)yum -y install docker (3)查看状态 systemctl status docker 2 docker镜像 ...