、IはC#process.start、プロセスが終了したかどうかはどのようにわかりますか? C#の
process.start(PROGRAM.EXE)でプロセスを開始することができます。
プログラムがまだ実行中かどうか、またはプログラムが終了しているかどうかを確認するにはどうすればよいですか?
、IはC#process.start、プロセスが終了したかどうかはどのようにわかりますか? C#の
process.start(PROGRAM.EXE)でプロセスを開始することができます。
プログラムがまだ実行中かどうか、またはプログラムが終了しているかどうかを確認するにはどうすればよいですか?
MSDN System.Diagnostics.Process
あなたが今をお知りになりたい場合は、あなたがHasExited
プロパティを確認することができます。
var isRunning = !process.HasExited;
クイックプロセスの場合は、ただ待ってください。
process.WaitForExit();
バックグラウンドで起動する場合は、EnableRaisingEventsをtrueに設定してからExitedイベントを購読してください。
process.EnableRaisingEvents = true;
process.Exited += (sender, e) => { /* do whatever */ };
イベントハンドラをExitedイベントに割り当てます。
このMSDNリンクにサンプルコードがあります - ここではこれを繰り返さないでください。
あなたは静的Process.Start()
コールを使用している場合Process
オブジェクトを保存(またはnew
でインスタンスを作成)した後、いずれかHasExited
プロパティを確認するか、あなたのニーズに応じて、Exited
イベントをサブスクライブしてください。
MSDN documentation for the Process classをご覧ください。
特に、聞くことができるイベント(Exited)があります。
Process p = new Process();
p.Exited += new EventHandler(p_Exited);
p.StartInfo.FileName = @"path to file";
p.EnableRaisingEvents = true;
p.Start();
void p_Exited(object sender, EventArgs e)
{
MessageBox.Show("Process exited");
}
Process.Start(string)メソッドは、Processのインスタンスを返すため、使用できます。そのインスタンスのExitedイベントを使用できます。 –
@MikeMayer良い点;私はいつもそれがそのように動作することを忘れる。編集します。 –