Dlaczego program FileSystemWatcher uruchamia dwukrotnie
dlaczego program FileSystemWatcher odpala dwa razy? Czy jest łatwy sposób to naprawić? Z pewnością, jeśli zaktualizuję lub edytuję plik tekstowy, powinien on wystrzelić tylko raz?
ten link tutajhttp://weblogs.asp.net/ashben/archive/2003/10/14/31773.aspx mówi
Zdarzenia są podnoszone dwa razy - Zdarzenie zostanie dwukrotnie podniesione, jeśli jawnie określono obsługę zdarzeń (AddHander FSW.Created, AddressOf FSW_Created). Dzieje się tak, ponieważ domyślnie zdarzenia publiczne automatycznie wywołują odpowiednie metody chronione (OnChanged, OnCreated, OnDeleted, OnRenamed). Aby rozwiązać ten problem, po prostu usuń jawną obsługę zdarzeń (AddHandler ...).Co oznacza „usunięcie jawnej obsługi zdarzeń”?
Imports System.IO
Public Class Form2
Private Sub FileSystemWatcher1_Changed(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed
'this fires twice
MessageBox.Show("test")
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
FileSystemWatcher1.Path = "C:\Users\c\Desktop\test\"
FileSystemWatcher1.NotifyFilter = NotifyFilters.LastAccess Or NotifyFilters.LastWrite Or NotifyFilters.FileName Or NotifyFilters.DirectoryName Or NotifyFilters.CreationTime
FileSystemWatcher1.IncludeSubdirectories = False
FileSystemWatcher1.Filter = "text.txt"
End Sub
End Class