perché il FileSystemWatcher viene attivato due volte? C'è un modo semplice per risolverlo? Sicuramente se aggiorno o modifico il file di testo dovrebbe sparare solo una volta?Perché FileSystemWatcher viene attivato due volte
questo link qui http://weblogs.asp.net/ashben/archive/2003/10/14/31773.aspx dice
- Eventi a salire due volte - Un evento sarà sollevato due volte se un gestore di eventi (AddHander FSW.Created, AddressOf FSW_Created) è espressamente specificato. Questo perché, per impostazione predefinita, gli eventi pubblici chiamano automaticamente i rispettivi metodi protetti (OnChanged, OnCreated, OnDeleted, OnRenamed). Per correggere questo problema, semplicemente rimuovere il gestore eventi esplicito (AddHandler ...).
Che cosa significa "rimuovere il gestore di eventi espliciti"?
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
Quando si verifica esattamente questo comportamento * inaspettato *? È quando si modifica un file, si sposta, si elimina o si crea un file? – Arrow
hi edit il file è quando succede - grazie –
Ho aggiornato la mia domanda con una possibile soluzione, almeno qualcosa da verificare in quanto potrebbe aiutare a restringere il problema. – Arrow