【发布时间】:2013-11-14 12:59:47
【问题描述】:
我有一个控制台应用程序的主线程,它以这种方式运行很少的外部进程
private static MyExternalProcess p1;
private static MyExternalProcess p2;
private static MyExternalProcess p3;
public void Main() {
p1 = new MyExternalProcess();
p2 = new MyExternalProcess();
p3 = new MyExternalProcess();
p1.startProcess();
p2.startProcess();
p3.startProcess();
}
public static void killEveryoneOnExit() {
p1.kill();
p2.kill();
p3.kill();
}
class MyExternalProcess {
private Process p;
...
public void startProces() {
// do some stuff
PlayerProcess = new Process();
....
PlayerProcess.Start();
// do some stuff
}
public void kill() {
// do some stuff
p.Kill();
}
}
我需要做的是:当主线程被中断(退出按钮或ctrl+c)时,其他进程应该被杀死。 如何在 CTRL+C 或退出 (X) 按钮上触发我的方法 killEveryoneOnExit?
【问题讨论】:
-
重复:查看stackoverflow.com/questions/3342941/… 了解设置子进程的正确方法,或者查看stackoverflow.com/questions/177856/…,如果您想自己处理Ctrl-C。
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。