Можем ли мы контролировать использование процессора при использовании Parallel.Foreach в C #? - PullRequest
0 голосов
/ 16 октября 2019

Я хочу обработать тысячи записей, используя Parallel.Foreach, но загрузка процессора составляет 100%.

Parallel.ForEach(PhotoPaths, new ParallelOptions { MaxDegreeOfParallelism = 10 }, photopath =>
{
    RemovePhoto(photo);
});

public void RemovePhoto(string photopath)
{
    File.Delete(photopath); 
} 

Если я использую MaxDegreeOfParallelism = 2, моя операция истекает по тайм-ауту.

При обычном цикле foreach время ожидания истекает, поэтому я выбрал Parallel.Foreach, с которым моя задача завершается, но единственная проблема - загрузка процессора составляет 100%. Пожалуйста, дайте мне знать, если у нас есть какие-либо альтернативы.

...