循环背景工人任务

时间:2012-06-04 04:43:09

标签: c#

我在后台工作程序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不要超过计时器的间隔)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否也看过Process.WaitForExit Method

这里以一个例子来解释:process restart loop