【发布时间】:2015-08-14 02:32:12
【问题描述】:
我在我的 C# 代码中使用外部 exe 文件。 请检查下面的代码。 这段代码我随便找了个网站。
string str = @"C:\joseph_Test\external_vendor.exe";
Process myprocess = new Process();
myprocess.StartInfo.FileName = str;
myprocess.Start();
我检查了这段代码是否正常工作,没有问题,但是下一次测试我需要使用另一种不同类型的外部 exe 文件。 而且我知道以前的“myprocess”仍然存在。 即使我重新启动程序,我的进程仍然存在。 所以我在网上搜索如何杀死或终止现有进程。 奇怪的是 myprocess 从未终止。
首先,我尝试了下面的代码,但该过程仍然存在。
myprocess.WaitForExit();
myprocess.Close();
我使用了下面的链接,但它仍然没有被杀死。
也没有以下面的方式终止。
Kill some processes by .exe file name
我怀疑这个 exe 文件是由供应商制作的,所以发生了这种情况。 但理论上是 C# 创建进程实例,所以我相信 C# 可以终止或杀死这个进程。
【问题讨论】:
-
如果您正在创建进程,您可以将其分配给
Job对象,然后结束作业。如果您的进程崩溃或关闭,该作业还将导致进程自动终止。 -
如果你链接的kill process 不能阻止你的进程(也可能你不能用任务管理器杀死它)这意味着你需要弄清楚会发生什么(你会可能需要找有 Win32 原生调试经验的人来追踪)。根据您提供的大量信息,您发现应该是答案(我不确定还有哪些额外信息可以使这篇文章不重复)。
-
我认为 Alexei 的评论是正确的。我需要为此进行 Win32 本机调试。另一个答案也无法终止该过程。不管怎么说,还是要谢谢你。 ~~~
标签: c# process exe terminate kill-process