プロセスが実行されているかどうかを確認するために、ポーリングタイマーを保持しています。これには次の簡単なコードがあります。
bool alreadyChecked = false; //check if the wait to check the second time is already over
**Timer_elapsed event**
Process sampleProcess[] = Process.GetProcessesByName("notepad");
if(sampleProcess.length > 0)
{
//Process is running
return;
}
else
{
//Process is not running, so do the following
//Wait for some time and check again (set alreadyChecked = true when the wait is over)
if (alreadyChecked){
//Run the process}
else{
//The process has started running while we were waiting
return;}
}
イベント内に実装できないwaiting code
ため、待機してからイベントを再度発生させることができます。(待機時間を実装しても、待機中にタイマーによって再び Timer_elapsed イベントが発生します。)
助言がありますか?