有时候,用户在进行某个操作时,程序运行到某个阶段突然崩溃,我们需要让程序自动重启,重新执行用户之前的操作,当发现主程序还存在,就重启用户执行的附加程序。这时候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类使用的更多相关文章

  1. C#的Process类调用第三方插件实现PDF文件转SWF文件

    在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...

  2. C#的Process类的一些用法

    c#之process类相关整理 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using Sys ...

  3. c#之process类相关整理

    一.根据进程名获取进程的用户名?   需要添加对 System.Management.dll 的引用   using System.Diagnostics; using System.Manageme ...

  4. 转:Process类的使用

    转载自:http://www.oschina.net/code/snippet_119226_6188 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 ...

  5. C#使用Process类杀死进程,执行命令等

    c#之process类相关整理 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using Sys ...

  6. C#中Process类的使用

    本文来自: http://www.cnblogs.com/kay/archive/2008/11/25/1340387.html Process 类的作用是对系统进程进行管理,我们使用Process类 ...

  7. [转]Java中使用Runtime和Process类运行外部程序

    帖子1: 使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序.  1. exec(String command)  2. exec(String comma ...

  8. 利用.Net中Process类调用netstat命令来判断计算端口的使用情况

    利用.Net中Process类调用netstat命令来判断计算端口的使用情况: Process p = new Process();p.StartInfo = new ProcessStartInfo ...

  9. java中Runtime类和Process类的简单介绍

    在java.lang包当中定义了一个Runtime类,在java中对于Runtime类的定义如下: Java code public class Runtime extends Object 每个 J ...

随机推荐

  1. mapreduce中reduce没有执行

    hadoop执行mapreduce过程reduce不执行原因 1.如果你的map过程中没有context.write()是不执行reduce过程的:2.如果你的map过程中context.write( ...

  2. 给.sh文件添加执行权限linux

    chmod是权限管理命令change the permissions mode of a file的缩写.. u代表所有者,x代表执行权限. + 表示增加权限. chmod u+x file.sh 就 ...

  3. kubernetes监控终极方案-kube-promethues

    kube-promethues简介 前面我们学习了Heapster+cAdvisor方式监控,这是Prometheus Operator出现之前的k8s监控方案.后来出现了Prometheus Ope ...

  4. 20189220 余超《Linux内核原理与分析》第三周作业

    操作系统如何工作的 第二章的基础知识 计算机的三大法宝:存储程序计算机,函数调用堆栈机制,中断. 堆栈:堆栈是C语言程序运行时必须使用的几率函数条用路径和参数存储的空间,具体作用分为:记录函数条用的框 ...

  5. EF 调试跟踪生成的SQL语句

    IQueryable query = from x in appEntities select x; var sql = ((System.Data.Objects.ObjectQuery)query ...

  6. android -------- Base64 加密解密算法

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RFC2049,上面有MIME的详细规范. Ba ...

  7. Gson字符串编码,字符串转换成图片保存,二进制转换成图片保存

    import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.File; import ...

  8. centos7下python2环境安装pip2、kazoo、bottle、beaker

    摘自:https://mp.weixin.qq.com/s?src=11&timestamp=1576355125&ver=2034&signature=mNp2na6VjFz ...

  9. [LeetCode] 79. Word Search 单词搜索

    Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...

  10. [LeetCode] 624. Maximum Distance in Arrays 数组中的最大距离

    Given m arrays, and each array is sorted in ascending order. Now you can pick up two integers from t ...