FileSystemWatcher
を使用して、単一のファイルの変更後にChanged
イベントが2回発火することを観察する場合があります。これはバグではなく、既知の動作です。典型的なシナリオを調べてみましょう:
public void Initialize() { FileSystemWatcher fileWatcher = new FileSystemWatcher(); fileWatcher.Path = "C:\Folder"; fileWatcher.NotifyFilter = NotifyFilters.LastWrite; fileWatcher.Filter = "Version.txt"; fileWatcher.Changed += OnChanged; fileWatcher.EnableRaisingEvents = true; } private void OnChanged(object source, FileSystemEventArgs e) { // ... event handling logic ... }
OnChanged
を2回トリガーします。 これは、ファイルシステムが書き込みプロセス中に複数のアクションを実行し、それぞれが個別のイベントをトリガーする可能性があるために発生します。
を改良することは役立ちますが、それは保証されたソリューションではありません。 状況によっては、カスタムの重複イベントフィルタリング(回避策)を実装する必要がある場合があります。
この動作と潜在的なソリューションの詳細については、この役立つリソースを参照してください。NotifyFilter
filesystemwatcherのヒント
以上がファイルSystemWatcherが1つのファイル変更後にイベント火災を2回変更したのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。