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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage