我正在使用'System.Windows.Forms.Timer'来重复任务.但是当计时器启动时,我必须在任务开始之前等待一个间隔.间隔设置为10秒,以便给任务足够的时间来完成它.但是有一种"尴尬的沉默"等着它第一次开始.有没有办法在启用计时器时触发Tick事件?(我无法使用线程,回调或事件来重复任务)
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++;
}
}
Run Code Online (Sandbox Code Playgroud)
您始终可以手动调用方法:
private void InitializeTimer()
{
counter = 0;
t.Interval = 750;
t.Enabled = true;
timer1_Tick(null, null);
t.Tick += new EventHandler(timer1_Tick);
}
Run Code Online (Sandbox Code Playgroud)
你可以用一个System.Threading.Timer.
这有一个构造函数,需要一个初始等待期.将此值设置为零,计时器将立即触发回调,然后是您之后指定的每个间隔.
Timer stateTimer = new Timer(tcb, autoEvent, 0, 750);
Run Code Online (Sandbox Code Playgroud)