在vb中使用timer.elapsed

时间:2014-04-30 09:28:03

标签: c# vb.net

我有一个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。这些是我计划中的子项。

为什么我可以使用它们,为什么会出现错误。

1 个答案:

答案 0 :(得分:1)

您必须在VB.NET中使用AddHandler以编程方式注册事件:

AddHandler timer.Elapsed, AddressOf OnElapsedTime