利用FileSystemWatcher監控檔案,事件觸發多次的問題。

  • 3449
  • 0

摘要:利用FileSystemWatcher監控檔案,事件觸發多次的問題。

利用FileSystemWatcher監控檔案時,發現同一個操作可能會觸發多個事件。

若要用事件去處理檔案時,可能會造成多次處理。

目前測試的結果是Rename, Create, Delete的事件都只會被觸發一次,

然後Changed這個事件則可能會被觸發2次以上,若要利用這個事件處理檔案,要非常小心。

google了一下,發現這個問題有人提供解決方式,

http://www.cnblogs.com/RicCC/archive/2006/12/16/filesystem-watcher.html

http://www.yaosansi.com/post/1331.html

方法都是利用timer的方式去解決,也就是雖然Changed事件被觸發2次以上,但timer的事件只會被觸發一次。

但這個方式timer的interval可能是個關鍵,若不同檔案的Changed事件被同時觸發,

即其觸發的時間間隔小於interval,此時timer的事件不知道是不是會正確?這有待測試。

 

新增測試結果:

測試的結果如預測的一樣,同時有不同檔案的Changed事件被觸發時,因為Timer的Interval比較長,

所以Timer的事件只有被觸發一次,而不是多次。

============ 以下是簽名檔 ============

一個小小螺絲釘。

第一次建立Blog,希望以後能慢慢充實它。

Howard