call Tick event when timer starts
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);
}
Just create a method then call this from within your timer and also just before you start your timer.
private int counter;
Timer t = new Timer();
private void InitializeTimer()
{
counter = 0;
t.Interval = 750;
DoMything();
t.Tick += new EventHandler(timer1_Tick);
t.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (counter >= 3)
{
t.Enabled = false;
}
else
{
//do something here
counter++;
DoMything();
}
}
private void DoMything()
{
//Do you stuff here
}
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);
The simplest way might be to initially set the Interval
to something very small, then increase it in the Tick
handler, or in a separate handler.
This will ensure the first "tick" occurs in the same manner as subsequent ticks, e.g. on its own thread, rather than in the context of the initialize method.