Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why will this timer not start in a .net service application?

I have this code for a Windows service I am writing in .NET....However the TICK function never gets executed regardless of what interval I put in the tmrRun properties. What am I missing? I am sure its something stupid I am not seeing.

Thank You

    
Imports System.IO

Public Class HealthMonitor

    Protected Overrides Sub OnStart(ByVal args() As String)
        // Add code here to start your service. This method should set things
        // in motion so your service can do its work.
        tmrRun.Start()
    End Sub

    Protected Overrides Sub OnStop()
        // Add code here to perform any tear-down necessary to stop your service.
        tmrRun.Stop()
    End Sub

    Private Sub tmrRun_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmrRun.Tick
        //DO some stuff
    End Sub
End Class

like image 299
kevin bailey Avatar asked Dec 06 '22 06:12

kevin bailey


2 Answers

This helps for me.

Imports System
Imports System.Timers

Public Class MyTimers

    Protected Overrides Sub OnStart(ByVal args() As String)

        Dim MyTimer As New System.Timers.Timer()
        AddHandler MyTimer.Elapsed, AddressOf OnTimedEvent

        ' Set the Interval to 10 seconds (10000 milliseconds).
        MyTimer.Interval = 10000
        MyTimer.Enabled = True
    End Sub

    Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
        Console.WriteLine("Hello World!")
    End Sub
End Class
like image 66
JanBorup Avatar answered Dec 22 '22 00:12

JanBorup


If you are using System.Windows.Forms.Timer that won't work in a service. Look into the other two times you can use in .NET.

like image 34
RichardOD Avatar answered Dec 21 '22 22:12

RichardOD