Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 循环后台工作程序任务_C# - Fatal编程技术网

C# 循环后台工作程序任务

C# 循环后台工作程序任务,c#,C#,我在后台workerDoWork事件中有一些代码,用于检查进程是否正在运行。DoWork中的代码执行以下操作: ->如果进程未运行,请再次检查两次 ->如果进程正在运行,请检查它是否正在响应 ->如果进程正在运行并重新编程,则不执行任何操作 ->如果进程正在运行且没有响应,请重新启动进程 void bgworker_DoWork(object sender, DoWorkEventArgs e) { int numberTrials = 0;

我在后台worker
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");
                }
            }
        }
void bgworker\u DoWork(对象发送方,DoWorkEventArgs e)
{
int numberTrials=0;
bool isNotRunning=false;
while(isNotRunning=(someProcess.Length==0)和&numberTrials<3)
{
WriteLine(String.Format(“numTrial={0}”,numberTrials.ToString());
睡眠(3000);
++数字;
}
如果(未运行)
{
Debug.WriteLine(“启动任务”);
someProcess.Start();
}
其他的
{
如果(!someProcess.IsKioskResponding)
{
Debug.WriteLine(“Kill任务”);
}
}
}

上面的东西运行得很好,但我必须每3分钟循环一次上面的
DoWork
任务。将上述循环任务保持在一个间隔为3分钟的计时器中是一件好事吗?(这样我就必须处理
Thread.Sleep x numberTrials
以不超过计时器的间隔)。您对此有何想法?

您也看过

这里用一个例子来说明: