0

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

4

1 回答 1

0

您是否也看过Process.WaitForExit 方法

这里用一个例子来解释:进程重启循环

于 2012-06-04T05:43:57.980 回答