Как FileSystemWatcher работает над другим компьютерным каталогом?

вы должны определить defer и вернуть его за пределы вашей асинхронной операции, например:

6
задан Rob Stevenson-Leggett 9 March 2009 в 17:02
поделиться

2 ответа

Используя FileSystemWatcher на другом компьютере кажется слишком легким, чтобы быть верным...

Это отчасти. Базовый API - ReadDirectoryChanges() - открывает соединение с сервером, который ответственен за ответ, когда что-то изменяется. Если то соединение отбрасывается по некоторым причинам, или Вы увеличиваете против ограничения соединения ОС, с которой Вы соединяетесь, то Вы не получаете уведомления.

Я нашел, что это более надежно для опроса периодически (с некоторым довольно длинным интервалом), и использование FileSystemWatcher только как способ ответить быстро на изменения промежуточные опросы.

8
ответ дан 16 December 2019 в 21:46
поделиться

Я думаю, что FileSystemWatcher действительно использует шаблон наблюдателя / заметный шаблон на основе базового Win32 API. Не уверенный в фактических событиях, но по-видимому при инициализации объекта FileSystemWatcher наблюдать сетевой путь и установить свойство EnableRaisingEvents, оно присоединяется негласно к папке как наблюдатель путем присоединения к событиям, сгенерированным API Win32, как они были бы, если папка была на том же компьютере.

В шаблоне разработки The Observer (заметный) предмет никогда не знает о количестве или типах наблюдателя поэтому точка о другом компьютере, знающем, когда FSW больше не смотрит, не важно.

Если сеть понижается во время события, сгенерированного, который является чем-то вроде глюка - кто-то еще должен будет помочь Вам там.

0
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: