FileSystemWatcher.Filter - до или после буфера?
Я работаю над проектом с очень большим количеством файлов, которые изменяются и создаются / удаляются. Есть некоторые проблемы с заполнением нескольких внутренних буферов FSW и необходимость их расширения.
Я нашел противоречивую информацию в Интернете о том, отфильтровывает ли ".Filter" BEFORE
или же AFTER
обнаруженные изменения добавляются в буфер. Если на самом деле после одного FSW с сортировкой событий впоследствии может иметь больше смысла.
Кто-нибудь знает здесь наверняка, что это?
Благодарю.
1 ответ
FileSystemWatcher
оборачивает родной метод W32 ReadDirectoryChangesW
который, в свою очередь, отвечает за помещение событий файловой системы в предоставленный буфер. Filter
свойство применяется на стороне CLR после того, как событие уже было буферизовано в приватном MatchPattern
метод, который сообщает монитору, сообщать ли о событии файла или нет.
Использование Filter
собственность вряд ли поможет вашей текущей ситуации. Скорее, это может быть более выгодным, чтобы вырастить InternalBufferSize
значение, чтобы избежать переполнения буфера. В качестве альтернативы, в сети существует ряд других классов мониторинга событий файловой системы, предназначенных для решения этой же проблемы.