イベントが発生した後FileSystemWatcher.Error
、私は次に何をすべきかについての手がかりがありません。例外は、[比較的]マイナーなものである可能性があります。
ディレクトリ内の一度に多くの変更
これはウォッチャーの監視プロセスには影響しませんが、監視対象のディレクトリが削除されるなど、大きな問題になる可能性もあります。その場合、ウォッチャーは機能しなくなります。
私の質問は、エラーイベントを処理するための最良の方法は何ですか?
イベントが発生した後FileSystemWatcher.Error
、私は次に何をすべきかについての手がかりがありません。例外は、[比較的]マイナーなものである可能性があります。
ディレクトリ内の一度に多くの変更
これはウォッチャーの監視プロセスには影響しませんが、監視対象のディレクトリが削除されるなど、大きな問題になる可能性もあります。その場合、ウォッチャーは機能しなくなります。
私の質問は、エラーイベントを処理するための最良の方法は何ですか?
確かにエラーに依存しますか?
単純に内部例外タイプを取得し、エラーごとに何をするか(再起動または失敗)を決定します。
それで
myWatcher.Error += new ErrorEventHandler(OnError);
フォローする
private static void OnError(object source, ErrorEventArgs e)
{
if (e.GetException().GetType() == typeof(InternalBufferOverflowException))
{
// This can happen if Windows is reporting many file system events quickly
// and internal buffer of the FileSystemWatcher is not large enough to handle this
// rate of events. The InternalBufferOverflowException error informs the application
// that some of the file system events are being lost.
Console.WriteLine(("The file system watcher experienced an internal buffer overflow: " + e.GetException().Message));
}
}