我有一个VB sub,如下所示:
Private timer As New System.Timers.Timer()
Protected Overrides Sub OnStart(ByVal args() As String)
Try
timer.Elapsed += New ElapsedEventHandler(OnElapsedTime)
Dim timerTime As Integer = Int32.Parse(ConfigurationSettings.AppSettings("timer"))
timer.Interval = timerTime
timer.Enabled = True
Dim worker = New System.Threading.Thread(DoWork)
worker.Name = "Happy"
worker.IsBackground = False
worker.Start()
Catch ex As Exception
Log(ex.Message)
End Try
End Sub
但问题是我习惯了C#代码,并且在VB中有一个小项目,而timer.Elapsed += New ElapsedEventHandler(OnElapsedTime)
给出了一个无法直接调用的错误,我必须使用raise事件。
同样是敌人OnElapsedTime和DoWork。这些是我计划中的子项。
为什么我可以使用它们,为什么会出现错误。
答案 0 :(得分:1)
您必须在VB.NET中使用AddHandler
以编程方式注册事件:
AddHandler timer.Elapsed, AddressOf OnElapsedTime