2010-08-25 80 views
1

我正在寫一個程序,能夠拋出錯誤,因爲使用LuaInterface並在可編輯腳本中加載,這會導致出現錯誤,因爲錯誤沒有「Application.Exit」或「Form.FormClosing」事件似乎被稱爲。因此,我不能保證我在應用程序中運行的進程關閉。強制進程​​關閉出錯

當主進程通過錯誤結束時,是否有任何方法關閉啓動的進程?

+1

這是一個WinForms,控制檯或WPF應用程序? – 2010-08-25 02:16:51

回答

1

除非進程從任務管理器殺死它,或者使用Environment.FailFast強行結束,如,你應該能夠做這樣的事情在你的主要方法:

public static void Main(string[] args) { 

    try { 
     DoNormalStartupStuff(); 
    } 
    finally { 
     foreach (var process in _runningProcesses) { 
      process.Kill(); 
     } 
    } 

} 

另一種選擇是通過將進程ID從父進程傳遞給子進程或doing something like this來使子進程知道其父進程ID。然後,子進程可以監視父進程,如果它終止,子進程可以自殺。