FileSystemWatcher失败,有1000个文件创建
我正在使用FileSystemWatcher监视文件夹A.如果创建文件或将文件复制到该文件夹,它将被移动到文件夹B.
我通过右键单击选择“新建”,选择“文本文档”,在文件夹A中创建了一个文件。 文件立即移动到文件夹B. 但是如果我使用程序在文件夹A中创建1000个文件,那么它们就不会移动到文件夹B.因为看起来FileSystemWatcher无法检测到1000个文件是由程序创建的。
有人能为我解释一下吗?
看起来1000个文件将超出FileSystemWatcher的缓冲区。 这里有很好的解释
链接摘录:
缓冲区大小和错误事件
FileSystemWatcher类通过捕获所有相关文件和较旧的更改并将它们放入缓冲区来工作。 然后,一次处理一次,直到处理完所有通知并且缓冲区为空。 默认情况下,内部缓冲区的大小为8千字节(8192字节)。 每个事件最多可占用缓冲区的16个字节,不包括文件名。 这意味着当在短时间内发生很多变化时,缓冲区很快就会过载并且通知可能会丢失。
从FileSystemWatcher处理正确的错误事件将允许您编写这种可能性的代码。 例如,使用您自己的逻辑检查和/或操作错误事件的文件夹…
上述就是C#学习教程:FileSystemWatcher失败,有1000个文件创建分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/936581.html