杀死或终止正在运行的进程

本文关键字:运行 进程 终止 | 更新日期: 2023-09-27 18:07:48

我在c#代码中使用外部exe文件。请检查下面的代码。这段代码我只是找到了一些网站。

string str = @"C:'joseph_Test'external_vendor.exe";
Process myprocess = new Process();
myprocess.StartInfo.FileName = str;
myprocess.Start();

我检查了这个代码是工作的,没有问题,但下一个测试我需要使用另一种不同类型的外部exe文件。我意识到之前的"我的过程"仍然存在。即使我重新启动程序,我的进程仍然是活的。所以我上网搜索如何杀死或终止现有进程。奇怪的是,myprocess从来没有终止过。

首先,我尝试了下面的代码,但进程仍然存活。

myprocess.WaitForExit();
myprocess.Close();

我使用了下面的链接,但它仍然没有被杀死。

https://social.msdn.microsoft.com/forums/vstudio/en - us/50ecbcf2 d2d3 - 4 - f21 - 9775 - 5 - b8be1bd4346/how - -终止——过程——c?forum=csharpgeneral

也不能以below way结尾。

通过.exe文件名

杀死一些进程

我怀疑这个exe文件是由供应商制作的,所以会发生这种情况。但是理论是c#创建进程实例,所以我相信c#可以终止或杀死这个进程。

杀死或终止正在运行的进程

使用您创建的流程:

Process myprocess = new Process();
myprocess.StartInfo.FileName = @"C:'joseph_Test'external_vendor.exe";
myprocess.Start();

在通过名称终止进程的调用中,您可以首先通过不硬编码其名称,而是使用:

来确保它将被找到。
foreach (var process in Process.GetProcessesByName(myprocess.ProcessName))
{
    process.Kill();
}

您还可以在应用程序关闭时触发的事件中使用进程引用,以解决在应用程序退出后它仍在运行的问题。