FileSystemWatcher.Filter - 缓冲区之前还是之后?

时间:2013-03-05 12:31:14

标签: c# buffer filesystemwatcher internal

我正在开发一个项目,其中包含大量文件被修改和创建/删除。多个FSW内部缓冲区填充并且必须扩展时存在一些问题。

我在网上发现有关“.Filter”过滤掉BEFOREAFTER检测到的更改是否会添加到缓冲区的信息存在冲突。如果实际上在事件排序后的单个FSW之后实际上可能更有意义。

有谁知道这是确定的?

感谢。

1 个答案:

答案 0 :(得分:2)

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

使用Filter财产不太可能有助于您当前的情况。相反,增加InternalBufferSize值以避免超出缓冲区可能更有利。 或者,网上还有许多其他文件系统事件监视类,用于解决同样的问题。