【发布时间】:2012-07-16 17:52:02
【问题描述】:
我有一个 BackgroundWorker,它以 1 秒的间隔监控文件夹中的文件。如果找到文件,则为每个找到的文件引发 ReportProgress(0, fileName)。
在主线程上,我订阅该事件并处理每个文件。
这是:一个找到的文件 = 一个引发的事件 = 一个已处理的文件
如果主线程很慢,我的问题是关于排队事件。 例如,“文件观察者”每秒可以找到并引发 1000 个事件,但在处理每个文件的主线程上需要 1 秒。所以事件是排队的。
.NET 中的这种排队有什么限制吗?
谢谢, 巴特克
【问题讨论】:
-
您可以使用
FileSystemWatcherclass 代替后台工作人员吗? -
FileSystemWatcher在发生频繁/重大变化时不可靠。更改它的内部缓冲区可能会有所帮助,但它也有一个硬性限制。
标签: c# .net backgroundworker