プロセス終了時の 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)
{
後処理を記述
}

とかやっておくと,この後処理は,メモ帳が正常終了しても,異常終了しても呼ばれる.


以上,まめちしき.