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() > 0)
            {
                //獲取或設置在進程終止時是否應引發 System.Diagnostics.Process.Exited 事件,true:引發
                pro[0].EnableRaisingEvents = true;
                //進程推出后的執行時間
                pro[0].Exited += Process_Exited;
            }
            Console.ReadKey();
            #endregion
       
        }

        private static void Process_Exited(object sender, EventArgs e)
        {
            //判斷主進程是否存在,存在就再次自動重啟程序
            Process[] pro = Process.GetProcessesByName(mainProcessName);
            if (pro.Count() > 0)
            {
                Process.Start(@"C:\源代碼\imageEnhance\Dev\Dev3.2\AppProject\iImgEnh\binr\identification\iips.sdk.iauapp.exe");
            }
           
        }
    }

 如圖:

紅色為子進程,藍色為主進程。

當紅框進程崩潰后,程序發現主程序正常運行,就重啟服務。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM