This works, and I can't imagine how it might cause problems, but visual studio gives me an warning and that makes me sad. I'm just wondering if doing something like this might ever cause problems:
I have a custom timer that acts like a Wait for some number of milliseconds and then execute a function. It looks like this:
Public Class MyTimer
Inherits Timers.Timer
Public Event Done()
Public Sub New(ByVal interval As Double, ByVal repeat As Boolean, ByVal Work As DoneEventHandler)
Me.AutoReset = Not repeat
End Sub
Private Sub ElapsedToDoneConvert() Handles Me.Elapsed
RaiseEvent Done()
End Sub
End Class
I use it like this:
Dim Timer as New MyTimer(1000, False, Sub()
..code..
End Sub)
or
Dim Timer as New MyTimer(1000, True, Sub()
..code..
End Sub)
The first case waits one seconds and then executes ..code.., the second case executes ..code.. repeatedly every one second.
Now the question: Imagine I have a form with a textbox called TextBox1 on it. Is this safe?
Dim Timer As MyTimer
Timer = New MyTimer(1000, True, Sub()
If TextBox1.Text <> String.Empty Then
MsgBox("TextBox1 is no longer empty")
Timer.Stop()
End If
End Sub)
(So, every one second, Timer checks if TextBox1 is empty. If it isn't, it displays a message box and stops checking.)
I get a warning that Timer is used before it has been assigned a value, but it is used in the statement that assigns its value. The timer's interval is required to be greater than zero. Is there anything about this that I don't understand that could cause problems?
Thanks for the help!