FileSystemWatcher が 2 回起動するのはなぜですか? それを修正する簡単な方法はありますか?テキストファイルを更新または編集すると、一度だけ起動するはずですか?
このリンクはこちらhttp://weblogs.asp.net/ashben/archive/2003/10/14/31773.aspxは言う
- 2 回発生するイベント - イベント ハンドラー (AddHander FSW.Created、AddressOf FSW_Created) が明示的に指定されている場合、イベントは 2 回発生します。これは、既定では、パブリック イベントがそれぞれの保護されたメソッド (OnChanged、OnCreated、OnDeleted、OnRenamed) を自動的に呼び出すためです。この問題を修正するには、明示的なイベント ハンドラ (AddHandler ...) を削除するだけです。
「明示的なイベント ハンドラを削除する」とはどういう意味ですか?
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