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

守护进程函数——内部的小范围try catch 增强了 while死循环执行的 可靠性的更多相关文章

  1. UNIX环境高级编程——单实例的守护进程

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <signal.h&g ...

  2. UNIX环境高级编程——初始化一个守护进程

    #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h&g ...

  3. Supervisor 管理后台守护进程

    Supervisor 管理后台守护进程 参考原文如下: http://codinn.com/people/brant/notes/110948/ 做了一些注释 +++++++++++引用开始+++++ ...

  4. linux分享一:进程全攻略--守护进程(服务)

    概括: 进程是程序的运行实例.进程对应一个唯一的进程PID, 统一程序的多个实例可以同时运行,他们的pid互不相同. 进程一般分为交互进程.批处理进程和守护进程(daemons)三类 一:什么是守护进 ...

  5. 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发

    子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...

  6. UNP总结 Chapter 12~14 IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数

    一.IPv4与IPv6的互操作性 1.IPv4客户与IPv6服务器 拥有双重协议栈的主机的一个基本特性就是:其上运行的IPv6服务器既能应付IPv4客户,又能应付IPv6客户.这是通过使用IPv4映射 ...

  7. PHP有关守护进程,以及流程控制和信号处理函数

    守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种很有用的进程.PHP也可以实现守护进程的功能. 1.基本概念 进程 ...

  8. daemon函数实现原理 守护进程

    linux提供了daemon函数用于创建守护进程,实现原理如下: #include <unistd.h> int daemon(int nochdir, int noclose); 1.  ...

  9. 守护进程的创建(syslog函数)

    守护进程(daemon)是指在后台运行的,没有控制终端与之相连的进程.它独立于控制终端,通常周期性的执行某种任务. 守护进程是一种很有用的进程.Linux的大多数服务器就是用守护进程的方式实现的,如I ...

随机推荐

  1. linux 压缩工具

    gzip gunzip zcat bzip2 bunzip2 bzcat xz unxz xzcat a:  gzip 用法 # gzip file  压缩文件 不会保留源文件 直接生成 file.g ...

  2. QML手动连接信号槽【Connections】

    1.使用Connections import QtQuick 2.6 import QtQuick.Window 2.2 import QtQuick.Controls 1.4 Window { vi ...

  3. SVM学习笔记4-核函数和离群点的处理

    核函数在svm里,核函数是这样定义的.核函数是一个n*n(样本个数)的矩阵,其中:$K_{ij}=exp(-\frac{||x^{(i)}-x^{(j)}||^{2}}{2\sigma ^{2}})$ ...

  4. linux内核中的crng是什么?

    答: 一致性随机数生成器(congruential random number generator)

  5. HIHOcoder 1466 后缀自动机六·重复旋律9

    思路 后缀数组+博弈论的好题,首先对两个串都建出SAM,然后题目的要求实际上就是在SAM的trans上转移即可 DAG的博弈是经典问题,然后dfs求出SG函数,两个游戏的组合就是把SG函数异或起来,异 ...

  6. (转)看穿机器学习(W-GAN模型)的黑箱

        本文转自:http://www.360doc.com/content/17/0212/11/35919193_628410589.shtml#   看穿机器学习(W-GAN模型)的黑箱 201 ...

  7. Linux 压缩、解压命令使用

    tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,这里仅仅列举常用的压缩与解压缩参数 参数: -c :create 建立压缩档案的参数:(个人理解也就是打包) -x : 解压缩压缩档案 ...

  8. 几个优化SQL查询的方法

    1.什么是执行计划 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化 ...

  9. VHDL 类型转换

    STD_LOGIC_1164包集合 函 数 名 功 能 TO_STDLOGICVECTOR(A) 由BIT_VECTOR转换为STD_LOGIC_VECTOR TO_BITVECTOR(A) 由STD ...

  10. 【AT1219】历史研究

    Problem Description \(IOI\)国历史研究的第一人--\(JOI\)教授,最近获得了一份被认为是古代\(IOI\)国的住民写下的日记.\(JOI\)教授为了通过这份日记来研究古代 ...