C#杀死一个进程与杀死进程的所有派生进程
一个系统中有多个不同的进程,就有可能涉及到一个进程杀死另一个进程或杀死另一个进程及其派生的所有进程。简单又常见的情况就是软件更新,更新进程下载完更新文件后,就要关闭主进程,也就是要杀死主进程及其派生的所有进程,然后进行文件取代更新。
无论什么编程语言都提供了杀死进程的方法,下面就以 C# 为例说明杀死进程的方法。先介绍如何杀死一个进程,再介绍一个进程杀死另一个进程及其所有派生进程。
一、C#杀死一个进程及其派生进程
在 C# 中,有一个根据进程名称获取该进程及其所有派生进程的方法,只要用此方法获取到进程就可以一个个杀死它们,实现代码如下:
using System.Diagnostics;
/// <summary>
/// C# 关闭杀死一个进程及其派生进程
/// </summary>
/// <param name="processName">待杀死进程名称</param>
public void CloseProcesses(string processName)
{
Process[] arrPro = Process.GetProcessesByName(processName);
foreach (Process pro in arrPro)
vpro.Kill();
}
调用:CloseProcesses("softName");
二、C#杀死所有进程
跟杀死一个进程及其派生进程方法大同小异,只不过获取进程的方法不同。前者需要根据进程名称获取,后者是获取所有进程自然不用进程名称,实现代码如下:
using System.Diagnostics;
/// <summary>
/// C# 关闭杀死所有进程
/// </summary>
public void KillProcesses()
{
Process[] arrPro = Process.GetProcesses();
foreach (Process p in arrPro)
p.Kill();
}
调用:KillProcesses();