Использование нескольких наблюдателей хорошо, если вам нужно. Как говорится в комментарии ShuggyCoUk, вы можете оптимизировать, объединяя средства просмотра файлов в одно, если все ваши файлы находятся в одной папке.
Вероятно, неразумно создавать средство просмотра файлов в гораздо более высокой папке (например, в корне диска), потому что теперь ваш код должен обрабатывать намного больше событий, запускаемых из-за других изменений, происходящих в файловой системе, и довольно легко попасть в переполнение буфера, если ваш код недостаточно быстр для обработки событий.
Еще один аргумент в пользу меньшего количества файловых наблюдателей - это файловый системный объект, который является родным объектом и закрепляет память. Поэтому, в зависимости от срока службы и размера вашего приложения, вы можете столкнуться с проблемами фрагментации памяти, вот как:
Ваш код выполняется долго (например, часы или дни), когда вы открываете файл, он создает некоторый кусок данных в памяти и создает экземпляр средства просмотра файлов. Затем вы очищаете эти временные данные, но наблюдатель файла все еще там, ЕСЛИ вы повторяете, что несколько раз (и не закрываете файлы, или не забываете распоряжаться наблюдателями), вы просто создали несколько объектов в виртуальной памяти, которые не могут быть перемещены CLR и может потенциально попасть в перегрузку памяти. Обратите внимание, что это не имеет большого значения, если у вас есть несколько наблюдателей, но если вы подозреваете, что можете попасть в сотни или более, остерегайтесь, что это станет серьезной проблемой.