2016-08-02 64 views
0

我有一個複雜的控制檯程序用於數據操作,這是一個痛苦的使用。C#:使用單獨的.exe

我想創建一個包裝類型的GUI程序,以方便易用。

現在我打開一個新線程並使用Process.Start()並捕獲輸出。

這個工程很好,除了一個問題,如何取消用戶需求的過程

鑑於這個過程是CPU密集型的,可以有很長的運行時間,這非常重要。

回答

0

使用Process.Kill()方法:

foreach (var process in Process.GetProcessesByName("whatever")) 
{ 
    process.Kill(); 
} 

如果你不想殺whatever所有實例,然後使用啓動過程:

process = Process.Start("whatever"); 

然後調用當你想Kill方法到:

process.Kill(); 
+2

的OP啓動過程中自己,爲什麼要資源

myProcess.Close(); 

然後停止進程他麻煩再次尋找它?如果他想殺死另一個進程啓動的進程,那麼你的回答本來是完美的:) – Sidewinder94

+0

好吧,那很簡單。 – user6667032

+0

所以它適用於你想要的東西?但有一件事,如果有多個「任何」進程的實例,它會殺死它們中的所有**。 – 2016-08-02 10:14:47

0

假設你有啓動一個進程像下面

Process myProcess = Process.Start("myapp.exe"); 

,那麼你可以關閉的過程中騰出使用

myProcess.Kill();