У меня есть FileSystemWatcher
, который проверяет несколько каталогов на наличие созданных файлов.
((System.ComponentModel.ISupportInitialize)(FileMonitor)).BeginInit();
FileMonitor.EnableRaisingEvents = true;
FileMonitor.Created += new FileSystemEventHandler(FileMonitor_Created);
FileMonitor.Path = Path.ToString();
FileMonitor.IncludeSubdirectories = true;
FileMonitor.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Attributes;
((System.ComponentModel.ISupportInitialize)(FileMonitor)).EndInit();
По какой-то причине событие FileMonitor_Created не всегда срабатывает при запуске приложения, хотя должно. Такое ощущение, что случайно...
Однако, если я поставлю точку останова в методе FileMonitor_Created, он будет работать отлично: событие срабатывает каждый раз, когда должно, если точка останова установлена.
Я попытался установить InterBufferSize для FileMonitor, но это не дало никакого эффекта.
Обновить
Я добавил событие Changed
в Filemonitor и дал ему тот же обработчик, что и для события Created
. Как-то работает сейчас, хотя файл фактически создается, а не изменяется.
Мне все еще любопытно, почему это всегда работало «по-старому» при установке точки останова.