System.IO.FileSystemWatcher的Created事件是同步还是异步触发?

时间:2012-10-02 12:30:37

标签: c# .net filesystemwatcher

如果在被监控的文件夹中同时创建了x个新文件,那么Created事件是同时触发x次还是依次触发x次?

2 个答案:

答案 0 :(得分:3)

filesystemwatcher类使用内部缓冲区来存储文件更改(这可能会溢出,这会导致事件丢失),它会一个接一个地连续调用订阅类型的事件,直到缓冲区为空。默认情况下,这是异步运行的。只要描述了in the documentation的SynchronizingObject属性,就会使用默认值。您可以通过设置this answer.

中所述的SynchronizingObject来使其同步运行

另请注意,从文档中可以看出,即使多个文件观察者正在观看同一文件夹,也只会收到文件更改事件。

总结:默认情况下,这些事件存储在缓冲区中,然后由一个单独的线程快速连续触发,直到缓冲区为空。如果创建或更改了许多文件太快,则由于缓冲区溢出可能会丢失一些更改。

答案 1 :(得分:0)

它同时发射x次。您可以同时为多个文件运行Created事件。

相关问题