2013-03-05 66 views
5

我正在修改和创建/删除大量文件的项目。多个FSW内部缓冲区填充存在一些问题,需要扩展。FileSystemWatcher.Filter - 缓冲区之前还是之后?

我发现网上有冲突的信息,关于是否“.Filter”过滤出BEFOREAFTER检测到的更改已添加到缓冲区。如果事后对事件进行排序的单个FSW实际上可能更有意义。

有谁知道这里肯定它是哪一个?

谢谢。

回答

1

FileSystemWatcher包装原生W32方法ReadDirectoryChangesW,后者又负责将文件系统事件放入提供的缓冲区中。在事件已经在专用的MatchPattern方法中缓冲事件后,CLR端强制执行Filter属性,该方法通知监视器是否报告文件事件。

使用Filter属性不会有助于您目前的情况。相反,增大InternalBufferSize值可能会更有利于避免超出缓冲区。 另外,网络上还有许多其他的文件系统事件监视类,它们解决了这个问题。

相关问题