私の解決策は、すべてのプロセスをリストするためにProcess.GetProcess()を使用することです。
必要なプロセスを含むようにフィルター処理することで、Process.Kill()メソッドを実行してそれらを停止できます。
var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver"); // without '.exe'
foreach (var process in chromeDriverProcesses)
{
process.Kill();
}
更新:
(Async Enumerables)のasync
いくつかの便利な最近のメソッドでアプローチを使用したい場合は、これを確認してください:C# 8
const string processName = "chromedriver"; // without '.exe'
await Process.GetProcesses()
.Where(pr => pr.ProcessName == processName)
.ToAsyncEnumerable()
.ForEachAsync(p => p.Kill());
注:async
メソッドを使用しても、コードの実行が速くなるとは限りませんが、少なくともCPU時間を浪費せず、操作の実行中にフォアグラウンドスレッドがハングするのを防ぎます。いずれの場合も、どのバージョンが必要かを考える必要があります。