守护进程函数——内部的小范围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);
}
}
守护进程函数——内部的小范围try catch 增强了 while死循环执行的 可靠性的更多相关文章
- UNIX环境高级编程——单实例的守护进程
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <signal.h&g ...
- UNIX环境高级编程——初始化一个守护进程
#include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h&g ...
- Supervisor 管理后台守护进程
Supervisor 管理后台守护进程 参考原文如下: http://codinn.com/people/brant/notes/110948/ 做了一些注释 +++++++++++引用开始+++++ ...
- linux分享一:进程全攻略--守护进程(服务)
概括: 进程是程序的运行实例.进程对应一个唯一的进程PID, 统一程序的多个实例可以同时运行,他们的pid互不相同. 进程一般分为交互进程.批处理进程和守护进程(daemons)三类 一:什么是守护进 ...
- 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发
子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...
- UNP总结 Chapter 12~14 IPv4与IPv6的互操作性、守护进程和inet超级服务器、高级I/O函数
一.IPv4与IPv6的互操作性 1.IPv4客户与IPv6服务器 拥有双重协议栈的主机的一个基本特性就是:其上运行的IPv6服务器既能应付IPv4客户,又能应付IPv6客户.这是通过使用IPv4映射 ...
- PHP有关守护进程,以及流程控制和信号处理函数
守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种很有用的进程.PHP也可以实现守护进程的功能. 1.基本概念 进程 ...
- daemon函数实现原理 守护进程
linux提供了daemon函数用于创建守护进程,实现原理如下: #include <unistd.h> int daemon(int nochdir, int noclose); 1. ...
- 守护进程的创建(syslog函数)
守护进程(daemon)是指在后台运行的,没有控制终端与之相连的进程.它独立于控制终端,通常周期性的执行某种任务. 守护进程是一种很有用的进程.Linux的大多数服务器就是用守护进程的方式实现的,如I ...
随机推荐
- oracle 之创建定时器
---创建定时执行任务declare job20 number;beginsys.dbms_job.submit(job20,'test1;',sysdate,'sysdate+1/1440');en ...
- [蓝桥] 基础练习 十进制转十六进制 (java)
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15.十六进制的计数方法是满1 ...
- Math.random 随机数方法
随机取数方法 Math.random() 表示0到1之间随机取一个数 <x< 小数 Math.random()* 表示0<x< parseInt(Math.random()*) ...
- Bytom猜谜合约使用指南
准备工作: 1.安装全节点钱包V1.0.5以上并同步完成: 2.已经发行一种资产,发行资产的方法具体见文章<如何在Bytom上发布资产?> 3.准备好一些BTM作为手续费: 设置谜语(锁定 ...
- Kylin知识点介绍
Kylin is an open source Distributed Analytics Engine from eBay Inc.that provides SQL interface and m ...
- awk 基础入门
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- hihoCoder 1515 分数调查(带权并查集)
http://hihocoder.com/problemset/problem/1515 题意: 思路: 带权并查集的简单题,计算的时候利用向量法则即可. #include<iostream&g ...
- javascript知识体系
JAVASCRIPT 篇 0.基础语法 javascript基础语法包括:变量定义.数据类型.循环.选择.内置对象等. 数据类型有string,number,boolean,null,undefine ...
- 【Cucumber】【命令行】
知识点 参考:https://www.cnblogs.com/worklog/p/5253297.html cucumber的命令行选项 首先查看命令行选项.和其它命令行工具一样,cucumber提供 ...
- 【Ruby】【变量】
知识点[Ruby 中$开头的全局变量.内部变量.隐藏变量介绍] Ruby 中充满了一系列的隐藏变量,我们可以从这些预定义的全局变量中获取一些有意思的信息. 全局进程变量 $$ 表示当前运行的 ruby ...