0

DoWorkプロセスが実行されているかどうかを確認するバックグラウンド ワーカー イベント内にいくつかのコードがあります。のコードはDoWork次のことを行います:
-> プロセスが実行されていない場合は、もう一度 2 回確認します。 -> プロセスが実行されている 場合
は、応答しているかどうかを確認 します。が実行されていて応答していない場合は、プロセスを再起動してください


 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 に答える