web-dev-qa-db-ja.com

Process.Close()は、作成されたプロセスを終了していません、c#

System.Diagnostics.Processクラスを使用してプロセスを作成するC#アプリケーションを作成しました。

 Process P1 = new Process();
 P1.FileName = "myexe.exe";

およびその他の適切な設定。

約10分間実行されるexeファイルにリンクしました。 (私はプログラムの実行時間を測定するプログラムを書いています)。その間に、実行中のプロセスを中止したいと思います。だから私はキャンセルボタンのイベントに書いた、

 Process.Close();

しかし、タスクマネージャーでは、myexe.exeが実行されているのがわかりますが、中止されません。何をすべきか?

27
Anirudh Goel

Process.Close() は、プロセスを中止することを意味するのではなく、プロセスと関連リソースの「ローカル」ビューを解放することを意味します。

Process.Kill() または Process.CloseMainWindow() という意味だと思います。個人的には、もっと優雅にシャットダウンする方法を見つけようと思います。

53
Jon Skeet

代わりに Process.Kill を使用してください。

5

Process.Kill()があなたが探しているものだと思います。

4
meatvest