Warum wird FileSystemWatcher zweimal ausgelöst?
Warum wird der FileSystemWatcher zweimal ausgelöst? Gibt es eine einfache Möglichkeit, das Problem zu beheben? Sicher, wenn ich die Textdatei aktualisiere oder bearbeite, sollte sie nur einmal ausgelöst werden?
Dieser Link hierhttp://weblogs.asp.net/ashben/archive/2003/10/14/31773.aspx sagt
Ereignisse werden zweimal ausgelöst - Ein Ereignis wird zweimal ausgelöst, wenn ein Ereignishandler (AddHander FSW.Created, AddressOf FSW_Created) explizit angegeben wird. Dies liegt daran, dass die öffentlichen Ereignisse standardmäßig automatisch die entsprechenden geschützten Methoden aufrufen (OnChanged, OnCreated, OnDeleted, OnRenamed). Entfernen Sie einfach den expliziten Ereignishandler (AddHandler ...), um dieses Problem zu beheben.Was bedeutet "Entfernen des expliziten Ereignishandlers"?
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