2016-08-02 67 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();