我在后台工作程序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");
}
}
}
上面的事情运行正常但我必须每隔3分钟循环上面的DoWork
任务。将上述循环任务保持在间隔为3分钟的计时器中是否是一件好事? (以这种方式,我必须照顾Thread.Sleep x numberTrials
不要超过计时器的间隔)。有什么想法吗?