This tip shows how to use delegates and the timer type in a class to dynamically trigger the running of a procedure. The name of the procedure to run (ScriptName) and the frequency to run it is taken from a data file (or table). What is unique about this code is that you don't need to place a timer control in the project but can create a timer or as many as you need by creating an instance of the class (clsWork). When the timer event is fired, the mainprocedure is called using delegates.
By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
'This is the class declaration
Public Class clsWork
Public ScriptName As String = ""
Public Frequency As Integer
Public xTimer As New System.Timers.Timer
Public Delegate Sub MyDelegate(ByVal strmessage As String)
Public m_Delegate As MyDelegate
Public Sub New()
AddHandler xTimer.Elapsed, AddressOf TimerFired
Public Sub TimerFired(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
'This part of the code is placed in the main program
'It is based on reading the ScriptName and Frequency from a file
Dim myWork As clsWork
myWork = New clsWork
.ScriptName = MyDR.Item("ScriptName")
.Frequency = myDR.Item("Frequency")
.xTimer.Interval = .Frequency * 60 * 1000
.m_Delegate = AddressOf MainProcedure