I'm using 'System.Windows.Forms.Timer' to repeat a task. But when the timer starts, I have to wait for one interval before the task starts. The interval is set to 10 seconds to give the task enough time to do it's thing. But there is an 'awkward silence' waiting for it to start the first time. Is there a way to trigger the Tick event when the timer is enabled? (I am unable to use threading, callbacks or events to get the task repeat)
private int counter;
Timer t = new Timer();
private void InitializeTimer()
{
counter = 0;
t.Interval = 750;
t.Enabled = true;
t.Tick += new EventHandler(timer1_Tick);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (counter >= 3)
{
t.Enabled = false;
}
else
{
//do something here
counter++;
}
}
You can always call your method manually:
private void InitializeTimer()
{
counter = 0;
t.Interval = 750;
t.Enabled = true;
timer1_Tick(null, null);
t.Tick += new EventHandler(timer1_Tick);
}
You could use a System.Threading.Timer
.
This has a constructor that takes an initial wait period. Set this to zero and the timer will trigger the callback immediately then every interval you specify thereafter.
Timer stateTimer = new Timer(tcb, autoEvent, 0, 750);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With