private void TerminateHogeHoge() { //ローカルコンピュータ上で実行されている"HogeHoge"という名前のすべてのプロセスを取得 Process[] processes = Process.GetProcessesByName("HogeHoge"); foreach (Process process in processes) { // メイン ウィンドウにクローズ メッセージを送信する bool isCloseMainWindow = process.CloseMainWindow(); if (! isCloseMainWindow) { // 終了しなかった場合は強制終了する process.Kill(); } // プロセスが終了するまで60秒間に待機する // TODO:何秒待機するのが適正化?暫定的に60秒。 bool isExit = process.WaitForExit(60000); if (isExit) { return; } throw new HogeHogeException("一定時間内にHogeHogeが終了しませんでした。"); } }
0 件のコメント:
コメントを投稿