循环后台辅助角色任务

本文关键字:角色 任务 后台 循环 | 更新日期: 2023-09-27 18:36:15

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

循环后台辅助角色任务

您是否也看过 Process.WaitForExit 方法

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