dlaczego FileSystemWatcher strzela dwukrotnie? Czy istnieje prosty sposób, aby to naprawić? Z pewnością jeśli zaktualizuję lub edytuję plik tekstowy, powinien on być uruchamiany tylko raz?Dlaczego FileSystemWatcher strzela dwukrotnie
ten link tutaj http://weblogs.asp.net/ashben/archive/2003/10/14/31773.aspx mówi
- Wydarzenia podnoszone dwukrotnie - Zdarzenie zostanie podniesiona dwukrotnie, jeśli obsługa zdarzeń (AddHander FSW.Created, AddressOf FSW_Created) jest wyraźnie określone. Wynika to z tego, że domyślnie publiczne zdarzenia automatycznie wywołują odpowiednie chronione metody (OnChanged, OnCreated, OnDeleted, OnRenamed). Aby rozwiązać ten problem, po prostu usuń jawny moduł obsługi zdarzeń (AddHandler ...).
Co oznacza "usunięcie jawnego programu 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
Kiedy dokładnie doświadczasz tego * nieoczekiwanego * zachowania? Czy edytujesz plik, przenosisz, usuwasz lub tworzysz plik? – Arrow
Witaj, edytuj plik, kiedy to się stanie - dziękuję –
Mam zaktualizowane moje pytanie z możliwym rozwiązaniem, co najmniej coś do sprawdzenia, ponieważ może pomóc zawęzić problem. – Arrow