循环后台辅助角色任务
本文关键字:角色 任务 后台 循环 | 更新日期: 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 方法
这里用一个例子来解释:进程重启循环