プロセス終了時の sendProcess_Exited イベントについて
C#で書いているフォームとかで外部の他のプロセスを駆動させて,そいつの終了時になんらかの後処理を入れたいときは sendProcess_Exitedイベントを使ってハンドルする.
ところがこのsendProcess_Exitedイベントってのは,
駆動した外部プロセスが正常に終了しようが,異常終了しようがお構いなしに呼ばれる.
意味を考えれば,それが正しいのだけど,
後処理で正常系しか考慮しない記述してると,思わぬところで嵌ることになるので注意ってことで.
たとえば
private System.Diagnostics.Process sendProcess;
sendProcess = new System.Diagnostics.Process();/*
* メモ帳起動
*/
private void callEditor()
{
sendProcess.StartInfo.FileName = "notepad.exe";
sendProcess.Start();
}/*
* メモ帳起動後の後処理
*/
private void sendProcess_Exited(object sender, System.EventArgs e)
{
後処理を記述
}
とかやっておくと,この後処理は,メモ帳が正常終了しても,異常終了しても呼ばれる.
以上,まめちしき.