Существуют ли способы доступа к файлам, которые минимизируют влияние MsMpEng.exe?C#

Место общения программистов C#
Ответить
Anonymous
 Существуют ли способы доступа к файлам, которые минимизируют влияние MsMpEng.exe?

Сообщение Anonymous »

Существуют ли способы доступа к файлам, которые минимизируют задержки, вызванные MsMpEng.exe?
Я получаю доступ к метаданным тысяч файлов изображений. Каждый раз, когда я обращаюсь к файлу, MsMpEng.exe вмешивается, чтобы извлечь файл, прежде чем предоставить моему приложению доступ к нему. Это правильно и хорошо, и я не хочу нарушать работу MsMpEng.exe или изменять его настройки.
Например, трассировка WPF/WPA показывает, что из примерно 30 секунд, необходимых для прочитать метаданные ~1300 jpeg, из них ~23 секунды тратятся на ожидание MsMpEng.exe.
Изображение

Существуют ли способы доступа к файлам, чтобы минимизировать влияние MsMpEng.exe ?
===
Изменить, добавив дополнительную информацию
  • Это приложение для Windows, которое будет работать на машинах конечных пользователей, поэтому изменение настройки MsMpEng.exe мне недоступны. (Кроме того, вы бы установили приложение, которое просило бы вас изменить настройки антивируса?)
  • Это приложение считывает фотографии пользователя. То есть изображения не являются частью приложения, поэтому упаковать их в архив не получится. (Хотя интересно... Я об этом не знал.)
  • SuperUser задавал вопросы об ОС или о том, как использовать антивирус Windows. Речь идет о том, как программно минимизировать влияние MsMpEng.exe на работающее приложение. Например, возможно, есть способ предупредить ОС о том, что вы собираетесь запросить доступ к 1000 файлам, и она может очистить эти файлы в пакетном режиме, а не MsMpEng.exe, вмешиваясь между открытием каждого отдельного файла. request.
  • Четыре потока читают файлы одновременно. Это четыре, потому что ввод-вывод становится узким местом, и это также оставляет некоторые системные ресурсы для всего, что пользователь выполняет на своем компьютере.
Код доступа к файлам выглядит примерно так: это... часть FileStream должна быть единственным битом, который имеет значение для ОС:
using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
var decoder = ImageUtilities.BitmapDecoderCreateLossless(stream);
var frame = decoder.Frames[0];
frame.Freeze();
var frameMetadata = (BitmapMetadata)frame.Metadata;

// Read metadata from frameMetadata
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... smpeng-exe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»