我最近在用一些FileSystemWatcher
s 进行测试,想知道事件处理在 .NET 中是如何工作的。例如,在 VB.NET 中使用此代码:
Dim fsw1, fsw2, fsw3 As New FileSystemWatcher()
Private Sub fsw_Error(sender As Object, e As ErrorEventArgs) _
Handles fsw1.Error, fsw2.Error, fsw3.Error
Dim iCont As Integer = 1
Dim fsw As FileSystemWatcher = CType(sender, FileSystemWatcher)
While Not fsw.EnableRaisingEvents AndAlso iCont < 120
iCont += 1
Try
fsw.EnableRaisingEvents = True
txtResultado.Clear()
Catch
fsw.EnableRaisingEvents = False
Threading.Thread.Sleep(30000)
End Try
End While
End Sub
每次在任何FileSystemWatcher
s 上发生错误时,都会执行该函数。为每个函数生成一个不同的线程FileSystemWatcher
?它们可以在同时执行多个操作时相互干扰吗?
在这方面 C# 和 VB.NET 之间可能存在差异?