Список процессов которые нужно обойти в цикле
var name = new List<string>
{
"svchost", "csrss", "System", "wininit"
}
Пробую так:
var etc = Process.GetProcesses();
foreach (var anti in etc)
{
foreach (var s in name)
{
if (name.IndexOf(anti.ProcessName.ToLower()) < 0)
{
anti.Kill();
}
}
}
Но выходит исключение:
Необработанное исключение типа "System.ComponentModel.Win32Exception" в System.dll
Что нужно исправить?
Попробуйте следующий код:
var names = new List<string> { "svchost", "csrss", "System", "wininit" };
var processes = Process.GetProcesses();
foreach (var process in processes)
{
if (!names.Contains(process.ProcessName, StringComparer.OrdinalIgnoreCase))
{
process.Kill();
}
}
PS: давайте нормальные имена вашим переменным. Все эти etc, anti, s - сами в них не путаетесь? Также учитывайте число: имён в коллекции подразумевается несколько, поэтому название должно быть names, а не name (даже если коллекция пустая).
Цикл foreach (var s in name) лишний, из за него Вы каждый процесс пытаетесь убыть 4 раза (столько элементов в списке):
var etc = Process.GetProcesses();
foreach (var anti in etc)
{
if (name.IndexOf(anti.ProcessName.ToLower()) < 0)
{
anti.Kill();
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости