1

我有一个表格(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是一个单独的可执行文件,它提供了一个用户输入表单;用户在该表单中输入一个图像文件后,单击“确定”按钮,它将关闭并且该图像将放入 MainForm。

下面是确定按钮的代码:

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

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

问题是当我在编辑器中单击确定按钮时,所有应用程序(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 回答