C # / WPF FileSystemWatcher на каждом расширении на каждом пути - PullRequest
1 голос
/ 24 апреля 2010

Мне нужен FileSystemWatcher, который может наблюдать те же конкретные пути и определенные расширения. Но пути могут быть десятками, сотнями или, может быть, тысячами (надеюсь, нет: P), то же самое с расширениями. Пути и ext добавляются пользователем.

Создание сотен FileSystemWatcher - это не очень хорошая идея, не правда ли?

Итак - как это сделать? Можно ли смотреть / наблюдать каждое устройство (жесткие диски, флэш-память SD, pendrives и т. Д.)? Будет ли это эффективно? Я так не думаю ... Любое изменение файла журнала Windows, сканирование файла антивирусной программой - это может сильно замедлить мою программу с помощью SystemWatcher: (

Ответы [ 2 ]

2 голосов
/ 24 апреля 2010

Хорошо, попробуйте сначала, и тогда вы увидите, если у вас возникнут проблемы.

Попытка оптимизировать что-то там, где вы даже не знаете, есть ли проблема, обычно не очень эффективна.

1 голос
/ 24 апреля 2010

Вы, вероятно, правы, что создание более 10000 FileSystemWatchers может вызвать проблемы. Если это произойдет (как говорит Foxfire - протестируйте его), начните с простых консолидаций - игнорируйте расширения при настройке FileSystemWatchers и фильтруйте события после их получения.

Если это все еще приводит к чрезмерному использованию ресурсов, попробуйте разумно объединить пути одним и тем же способом, возможно, даже зайдя так далеко, что создайте только один FileSystemWatcher для каждой буквы диска и выполните остальную часть фильтрации после получения события ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...