0
我在后台工作人员DoWork
事件中有一些代码检查进程是否正在运行。在DoWork
的代码执行以下操作:
- >如果进程没有运行,再次检查两次
- 如果正在运行的进程>,检查其是否响应
- >如果进程正在运行,respoding,什么都不做
- >如果进程正在运行,并且没有响应,请重新启动过程
循环后台工作任务
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");
}
}
}
上述事情运行正常,但我必须为循环每3分钟以上DoWork
任务。将上述循环任务保持在间隔3分钟的计时器中是否是件好事? (这样我将不得不照顾Thread.Sleep x numberTrials
不超过定时器的时间间隔)。对此有何想法?