Параллельное чтение файлов и Antimalware service executable
Столкнулся с одной проблемой. Не могу понять поведение Antimalware Service Executable. Есть программа которая считывает большое количество файлов:
var Files = Directory.EnumerateFiles(path, "*.dat", SearchOption.AllDirectories);
потом обрабатывает их параллельно:
var factoryTask= Task.Factory.StartNew(() => factory(Files));
private void factory(IEnumerable<string> Files)
{
Parallel.ForEach(Files, (file) =>
{
try
{
DatFactory(file);
}
finally
{
Interlocked.Increment(ref current);
}
});
}
при этом судя по таск менеджеру сама программа загружает процессор на 2-3% и практически нет обращений к диску. Но Antimalware Service Executable грузит процессор на оставшиеся 97%. пробовал играться с количеством потоков, чем меньше потоков( от 2*CPUcore и меньше) то увеличивается время выполнения и уменьшается нагрузка от Antimalware Service Executable. Попытка добавить программу в исключения и добавить Visual Studio c директориями в список исключений никак не меняют ситуацию. Пробовал на нескольких ОС с Windows 10. Ситуация аналогичная. Что так настораживает этот процесс и как этого избежать?