Распишу как это работает.
1.Метод поиска процессов
private List<String> Find_Process = new List<String>();//Список,сюда будут загружаться процессы
foreach (Process exProcess in Process.GetProcesses()) //В цикле прогоняем процессы к конечному, у нас это: chrome
{
switch (exProcess.ProcessName)//Переключатель найденных процессов
{
{
Find_Process.Add(exProcess.Id + ":" + exProcess.WorkingSet64 / 1024 / 1024 + ":" + "Google Chrome");//Добавляем данные в список ( id:memory:name )
}
break;//Закрываем
}
}
2.Метод фильтра
Int32 Index = Int32.MinValue;//Переменная индекса списка
Decimal[] Array = new Decimal[Find_Process.Count()];//Объявляем массив с определённым значением
Decimal Value_Max = Array[0];//Тут будет отображаться максимальное число памяти процессов
for (Index = 0; Index < Find_Process.Count<String>(); Index++)//Гоним в цикле уже найденные процессы
{
String[] Tmp = Find_Process[Index].Split(':');//Разбиваем строку на массив
Array[Index] = Convert.ToDecimal(Tmp[1]);//Записываем строку массива
if (Find_Process.Count<String>() == Index + 1 * 1)//Если количество найденных процессов рано индексу пройденных
{
for (Index = 0; Index < Array.Count(); Index++)//В цикле ищем процесс который использует больше памяти чем другие
{
if (Array[Index] >= Value_Max) //Если максимальное число равно или меньше пройденной памяти
{
Value_Max = Array[Index];//Записываем максимально число памяти
}
else //Иначе
{
Array[Index]--;//Удаляем значение памяти с массива
continue;//Прерывает работу цикла, но не останавливаем
}
}
}
}
for (Index = 0; Index < Array.Count<Decimal>(); Index++)//Поиск значения уже найденной максимальной памяти в списке процессов для обнаружения идентификатора процесса
{
String[] Search = Find_Process[Index].Split(':');//Разбиваем строку на массив
if (Search[1].IndexOf(Value_Max.ToString()) > -1)//Если в данной строке найдено такое значение
{//то
listBox1.Items.Add(Search[0] + " - " + Search[2]);//записываем результат процесса в формате id - pName.Это и будет процесс с игрой
}
else//Иначе
{
Array[Index]--;//Удаляем с массива значение памяти
continue;//И перезапускам цикл или останавливаем.
}
}
Вот вроде всё расписал,если что не понятно спрашивайте.