我的FileSystemWatcher出現問題。什麼是FileSystemWatcher InternalBufferSize的理想大小?
我有一個應用程序需要在短時間內監視文件夾中已創建的大量文件。
當我開始開發它時,我意識到很多文件沒有被通知,如果我的緩衝區小於64kb,這是微軟推薦的。我試圖增加超過這個緩衝區的大小,直到我達到了爲我工作的值,這是2621440字節!
對於這種情況,您可以推薦使用小尺寸,或者緩衝區的理想尺寸是什麼?
我的示例代碼:
WATCHER = new FileSystemWatcher(SignerDocument.UnsignedPath, "*.pdf");
WATCHER.InternalBufferSize = 2621440; //Great and expensive buffer 2.5mb size!
WATCHER.IncludeSubdirectories = true;
WATCHER.EnableRaisingEvents = true;
WATCHER.Created += new FileSystemEventHandler(watcher_Created);
WATCHER.Renamed += new RenamedEventHandler(watcher_Renamed);
什麼微軟說這個在.NET 2.0:
增加緩衝區的大小是昂貴的,因爲它來自非分頁內存 不能換因此請儘可能將緩衝區保持爲小於 。爲避免緩衝區溢出,請使用NotifyFilter和IncludeSubdirectories屬性來過濾不需要的更改 通知。 鏈接:FileSystemWatcher.InternalBufferSize Property