Problembeschreibung:
Wenn sich die Überwachung der Textdatei mithilfe der Dateisystemwatcher -Klasse ändert, wird das On -Changed -Ereignis jedes Mal, wenn sie geändert und gespeichert wird, zweimal aus.
Code Beispiel:
Analyse der Ursache:
public void Initialize() { FileSystemWatcher fileWatcher = new FileSystemWatcher(); fileWatcher.Path = "C:\Folder"; fileWatcher.NotifyFilter = NotifyFilters.LastWrite; fileWatcher.Filter = "Version.txt"; fileWatcher.Changed += new FileSystemEventHandler(OnChanged); fileWatcher.EnableRaisingEvents = true; } private void OnChanged(object source, FileSystemEventArgs e) { // ...事件处理逻辑... }
Lösung:
Obwohl Attribute dieses Problem manchmal lindern können, müssen sie in einigen Fällen möglicherweise manuell filtern und Vorfälle wiederholen.
Optimieren Filter wiederholen Ereignisse basierend auf anderen Bedingungen (z. B. Dateigröße oder Inhalt).
vermeiden Sie die Option , da sie auch wiederholte Auslöser des Vorfalls verursachen kann. NotifyFilter
Das obige ist der detaillierte Inhalt vonWarum löst mein Dateisystemwatcher das geänderte Ereignis zweimal aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!