我在后台工作人员DoWork
事件中有一些代码,用于检查进程是否正在运行。中的代码DoWork
执行以下操作:
-> 如果进程没有运行,请再次检查两次
-> 如果进程正在运行,请检查它是否响应
-> 如果进程正在运行并且正在响应,则不执行任何操作
-> 如果进程正在运行但没有响应,重新启动进程
void bgworker_DoWork(object sender, DoWorkEventArgs e)
{
int numberTrials = 0;
bool isNotRunning = false;
while (isNotRunning = (someProcess.Length == 0) && numberTrials < 3)
{
Debug.WriteLine(String.Format("numTrial = {0}", numberTrials.ToString()));
Thread.Sleep(3000);
++numberTrials;
}
if (isNotRunning)
{
Debug.WriteLine("Start Task");
someProcess.Start();
}
else
{
if(!someProcess.IsKioskResponding)
{
Debug.WriteLine("Kill Task");
}
}
}
上面的东西运行良好,但我必须DoWork
每 3 分钟循环一次上面的任务。将上述循环任务保留在间隔为 3 分钟的计时器中会是一件好事吗?(这样我就必须注意Thread.Sleep x numberTrials
不要超过定时器的间隔)。对此有什么想法吗?