FileSystemWatcher.Filter - до или после буфера?

Я работаю над проектом с очень большим количеством файлов, которые изменяются и создаются / удаляются. Есть некоторые проблемы с заполнением нескольких внутренних буферов FSW и необходимость их расширения.

Я нашел противоречивую информацию в Интернете о том, отфильтровывает ли ".Filter" BEFORE или же AFTER обнаруженные изменения добавляются в буфер. Если на самом деле после одного FSW с сортировкой событий впоследствии может иметь больше смысла.

Кто-нибудь знает здесь наверняка, что это?

Благодарю.

1 ответ

FileSystemWatcher оборачивает родной метод W32 ReadDirectoryChangesW который, в свою очередь, отвечает за помещение событий файловой системы в предоставленный буфер. Filter свойство применяется на стороне CLR после того, как событие уже было буферизовано в приватном MatchPattern метод, который сообщает монитору, сообщать ли о событии файла или нет.

Использование Filter собственность вряд ли поможет вашей текущей ситуации. Скорее, это может быть более выгодным, чтобы вырастить InternalBufferSize значение, чтобы избежать переполнения буфера. В качестве альтернативы, в сети существует ряд других классов мониторинга событий файловой системы, предназначенных для решения этой же проблемы.

Другие вопросы по тегам