zoukankan      html  css  js  c++  java
  • 守护进程函数——内部的小范围try catch 增强了 while死循环执行的 可靠性

    void Watch()
            {
                try
                {
                    LogHelper.WriteLog("WatchService Watch Start!");
                    while (true)
                    {
                        try
                        {
                            if (ReadConfig() != "true")
                            {
                                HideTaskBarAndStartButton(0);
                            }
                            else
                            {
                                HideTaskBarAndStartButton(1);
                            }
                        }
                        catch (Exception)
                        {

                                  //这个try catch 用得非常好 ,不能因小(显示/隐藏任务栏)失大(while死循环崩溃)
                        }

                        Process[] process = Process.GetProcessesByName("Zxt.TaxSelfHelp.Client");
                        //LogHelper.WriteLog("WatchService Watch Client process.Length:" + process.Length);
                        if (process.Length == 0)
                        {
                            process = Process.GetProcessesByName("Zxt.TaxSelfHelp.Update");
                            //LogHelper.WriteLog("WatchService Watch Update process.Length:" + process.Length);
                            if (process.Length == 0)
                            {
                                LogHelper.WriteLog("Process.Start " + Application.StartupPath + "\Zxt.TaxSelfHelp.Client.exe");
                                //ProcessStartInfo processStartInfo = new ProcessStartInfo();
                                //processStartInfo.Verb = "runas";
                                //processStartInfo.FileName = Application.StartupPath + "\Zxt.TaxSelfHelp.Client.exe";
                                //Process.Start(processStartInfo);

                                Process proc = new Process();
                                proc.StartInfo.FileName = "Zxt.TaxSelfHelp.Client.exe";
                                proc.StartInfo.WorkingDirectory = Application.StartupPath;
                                proc.Start();
                            }
                        }
                        Thread.Sleep(Second * 1000);
                    }

                }
                catch (Exception ex)
                {
                    LogHelper.ErrorLog("WatchService", ex);
                }
            }

  • 相关阅读:
    使用手机游戏的新闻推送
    win8.1 64位环境建设android开发环境
    LeetCode: Multiply Strings. Java
    Thread.join()分析方法
    字幕效果的幻灯片出现在网站上的图片
    JAVA技术交流群
    Android使得手机拍照功能的发展(源共享)
    领导基础课程
    Mysql开启远程连接方法
    mysql远程连接命令
  • 原文地址:https://www.cnblogs.com/changbaishan/p/10266549.html
Copyright © 2011-2022 走看看