2012-06-04 38 views
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不超过定时器的时间间隔)。对此有何想法?

回答