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
(そのようにして、タイマーの間隔を超えないように注意する必要があります)。これについて何か考えはありますか?