FileSystemWatcher在64位计算机上的行为不一致

时间:2012-01-05 03:04:05

标签: c# operating-system filesystemwatcher

我们有关于FileSystemWatcher的这个奇怪的问题。我们使用文件系统观察器监视某个文件,并将NotifyFilter设置为NotifyFilters.LastWrite。因此,每次写入日志声明时,观察者将始终实时通知。现在问题是当在32位机器中使用时,FSW实时显示文件中的日志语句,但是当我们在64位机器中使用时,FSW需要时间显示(它只会在记录器显示时显示)完成伐木)。

我们观察到的是每当我们刷新日志文件放在64位机器中的目录时,FSW会显示日志语句但是我们需要刷新它只是为了让FSW显示不像32位机器那样需要清爽。它实时显示日志语句......

更新:

watcher = new FileSystemWatcher(logDirectoryKmna, POLLING_ACTIVITY)
                {
                    NotifyFilter = NotifyFilters.LastWrite
                };

 watcher.Changed += OnFileSystemChangedDeviceDiscovery;
 watcher.EnableRaisingEvents = true;

OnFileSystemChanged的代码:

private void OnFileSystemChangedDeviceDiscovery(object source, FileSystemEventArgs e)
 {
     try
        {               
           if (e.ChangeType == WatcherChangeTypes.Changed)
           {
                 var reader = new StreamReader(_sharedStream);
                 var data = reader.ReadToEnd();
                  //data manipulation...
            }
        }
}

非常感谢。

0 个答案:

没有答案