Правильное создание потока

151
19 ноября 2019, 07:40

Этот код сильно нагружает процессор. Как понимаю, простаевается поток все время. Пробовал несколько вариантов, но все равно нагрузка не меняется

for (;;)
{
    Process[] processes = Process.GetProcesses();
    for (int i = 0; i < processes.Length; i++)
        if (processes[i].ProcessName.ToUpperInvariant().Contains("DNSPY"))
            Environment.Exit(0);
    Task.Delay(100);
}
Answer 1

Task.Delay работает только в асинхронной функции, при условии, что его дожидаются через await. Если у Вас отдельный Thread для этой задачи, то можно использовать Thread.Sleep(100); пример:

private async Task DoSomeWorkAsync() 
{
   for (;;)
   {
       Process[] processes = Process.GetProcesses();
       for (int i = 0; i < processes.Length; i++)
          if (processes[i].ProcessName.ToUpperInvariant().Contains("DNSPY"))
              Environment.Exit(0);
       await Task.Delay(100);
    }
}

Либо:

private void DoSomeWork() 
{
    new Thread(() => {
      for (;;)
      {
         Process[] processes = Process.GetProcesses();
         for (int i = 0; i < processes.Length; i++)
            if (processes[i].ProcessName.ToUpperInvariant().Contains("DNSPY"))
                Environment.Exit(0);
         Thread.Sleep(100);
      }
    }).Start();
}

Вариант с Task предпочтительней.

READ ALSO
Приложение поверх всех окон

Приложение поверх всех окон

Использую gtksharpЕсть у формы такое свойство как TopLevel

127
.NET Native ошибка компиляции. ChatCapabilitiesManager.GetCachedCapabilities

.NET Native ошибка компиляции. ChatCapabilitiesManager.GetCachedCapabilities

При построении проекта в Release происходит две ошибки в двух проектахНасколько я понял, мне нужно как-то правильно всё настроить в файле Properties/Default

122
Проиграть анимацию UserControl до установки Visibility.Collapsed

Проиграть анимацию UserControl до установки Visibility.Collapsed

Проблема следующая, сделал свой UserControlВ коде этого контрола привязался к событию IsVisibleChanged и проигрываю анимацию появления\закрытия

118
Когда не стоит использовать итератор?

Когда не стоит использовать итератор?

Когда использование паттерна итератор уместно, а в каких случаях нежелательно?

116