2
我有一個運行幾個外部流程這樣在控制檯應用程序捕獲Ctrl + C事件(多線程)
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或Exit(X)按鈕上觸發我的方法killEveryoneOnExit?
重複:請查看http://stackoverflow.com/questions/3342941/kill-child-process-when-parent-process-is-killed瞭解設置子進程的正確方法或http:// stackoverflow.com/questions/177856/how-do-i-trap-ctrl-c-in-ac-sharp-console-app如果你想自己處理Ctrl-C。 –
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –