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 ...
随机推荐
- 设计模式之MVC和MVT
MVC各部分的功能 全拼为Model-View-Controller(如上图所示) M(模型)全拼为Model,主要封装对数据库层的访问(内嵌ORM框架),对数据库中的数据进行增.删.改.查操作. V ...
- GoCN每日新闻(2019-10-11)
GoCN每日新闻(2019-10-11) GoCN每日新闻(2019-10-11) 1. golang 将数据库转换为gorm结构 https://studygolang.com/articles/2 ...
- Myschool试题
题目: 1.查询所有学生记录,包含年级名称2.查询S1年级下的学生记录 一.com.myschool.dao 1 BaseDao package com.myschool.dao; import ja ...
- fastq 转换为 fasta
使用 awk awk '{if(NR%4 == 1){print ">" substr($0, 2)}}{if(NR%4 == 2){print}}' XXX.fastq & ...
- sip user Authentication and 401
https://www.vocal.com/sip-2/sip-user-authentication/ https://tools.ietf.org/html/rfc3261 SIP User Au ...
- Android 属性property_get/property_set
每个属性都有一个名称和值,他们都是字符串格式.属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换.属性是在整个系统中全局可见的.每个进程可以get/set属性. 在系统初始化时 ...
- hive时间戳转换&UDF更新
from_unixtime 时间戳转换,如果带毫秒数的,除以1000. # ) ,'yyyy/MM/dd HH:mm:ss') as dt; reload function 今天碰到udf发布后,有时 ...
- chartjs
chartjs是一个图表控件集合,使用html5的canvas进行绘制. 官网:http://www.chartjs.org/ 文档:https://www.chartjs.org/docs/late ...
- bim模型中所有IfcWallStandardCase构件
ifc中的IfcWallStandardCase构件 //执行吊装 void startHoisting() { osg::Vec3f vec3f1 = index_node1->getBoun ...
- Zookeeper 安装与简单使用
一.安装Zookeeper 其实Zookeeper的安装特别简单,也不能算安装了,只需要将Zookeeper下载后解压,就完成了安装操作. 下载地址:http://zookeeper.apache.o ...