1

Form (MainForm)があります。MainFormには、 Editor.exeを呼び出すボタンがあります。exe 呼び出し元コードは次のように表示されます。

private void InsertEquaButtonClick(object sender, EventArgs e)
{
    Process p = Process.Start(Editor.exe);
    string test = p.ProcessName;
    p.WaitForExit();
}

Editor.exeは別個の実行可能ファイルであり、ユーザー入力フォームを提供します。ユーザーがそのフォームに 1 つの画像ファイルを入力し、[OK] ボタンをクリックすると、フォームが閉じ、その画像が MainForm に配置されます。

OKボタンのコードは次のとおりです。

.......
encoder.Save(s);// Save image to MainForm

var processes = Process.GetProcessesByName("Editor");
foreach (Process proc in processes)
{
    proc.CloseMainWindow(); // Propblem is here
    //   proc.Close();  
}
..........         

問題は、エディターで [OK] ボタンをクリックすると、すべてのアプリ (MainForm と Editor.exe) が閉じてしまうことです。

では、MainForm プロセス (親プロセス) を強制終了せずに Editor.exe (子プロセス) を強制終了するにはどうすればよいでしょうか。

私は試してみました:

proc.close()

pro.Kill()

...

しかし、それらは機能しません。

よろしくお願いします。

4

2 に答える 2

1

次のリンクは、あなたがやりたいことを達成するのに役立つかもしれません:

コード スニペット: すべての子プロセスを終了する

于 2013-07-18T06:55:34.723 に答える
1

私たちのプロジェクトにスレッドを使用している私のパートナーがより速く実行されるため、エディターでプロセスを閉じるとスレッドが閉じられるため、問題が発生します。.... ご質問の原因です ありがとうございます

于 2013-07-18T12:05:39.853 に答える