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);
そして、何Microsoftは.NET 2.0これについてで言う:それは交換することができない非ページメモリ から来ているよう
バッファサイズを増やすには、高価であり、ディスクに書き込むため、バッファーは まで可能な限り小さくしてください。バッファオーバーフローを回避するには、NotifyFilterと IncludeSubdirectoriesプロパティを使用して、不要な変更通知を除外します。 通知。 リンク:FileSystemWatcher.InternalBufferSize Property