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);
                }
            }

  • 相关阅读:
    正则表达式替换所有符合条件的字符
    关于jquery ajax不执行success回调函数
    关于jquery绑定事件执行两次
    同步选中所有checkbox
    Jquery动态改变my97datepicker的日期形式
    关于button在td中时,zclip复制不能的问题
    关于各种高度的获取方法
    慎用--skip-grant-tables命令
    Mysql中判断是否存在
    前端html
  • 原文地址:https://www.cnblogs.com/changbaishan/p/10266549.html
Copyright © 2011-2022 走看看