我们有关于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...
}
}
}
非常感谢。