以下是這種情況: 我必須創建一個程序,將另一個進程輸出流輸入到文本框中。它自我不會造成太多問題。然而,事實是我必須運行這個控制檯應用程序的5個實例並將輸出重定向到5個文本框,並且能夠隨時殺死這些進程中的任何一個。據我所知,最好的方法是異步的。但是這裏的問題是在不同的線程上創建進程。我如何殺死它而無法訪問它,因爲它不存在於我必須殺死它的範圍內。我最好的猜測是得到其在Process.Start()
PID,這樣我就可以殺死它,所以...Process.Kill()和進程事件
是否有可能從火過程中的任何事件上Process.kill()
命令? 如果沒有 - 是否有辦法在大約與Process.Kill()
相同的時間間隔內殺死一個進程,這會引發某種事件?
或者,也許有人可以建議我一些其他方法或最佳做法,如何解決這些問題?
編輯:我在不同的線程上運行所有進程的原因是,我使用Thread.Sleep()
其中一些如果有和輸入參數,告訴我必須在x秒後殺死進程。
你說:「但是這裏的問題是殺死進程,它是在不同的線程上創建的。一個進程不會在另一個線程上創建。過程是一個過程。你在混合進程和線程嗎? – PVitt
@PVitt我認爲他在談論過程對象,所以最好的方法可能是存儲一個靜態列表<>進程名稱和進程ID,你可以獲得進程ID並殺死它! – Burimi
但是可以在啓動信息上分配進程名稱和ID嗎? OS不是指定那些OS的人嗎?由於我只運行同一進程的5個實例,因此進程名稱也完全相同。 – TheBW