Cho*_*ong 2 .net c# timer winforms
我System.Windows.Forms.Timer在我的项目中使用了两个对象,如下所示.
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 60000;
timer2.Interval = 62000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Console.WriteLine("Timer1 :" + DateTime.Now.ToString());
timer2.Start();
}
private void timer2_Tick(object sender, EventArgs e)
{
Console.WriteLine("Timer2 :" + DateTime.Now.ToString());
timer2.Stop();
}
Run Code Online (Sandbox Code Playgroud)
输出结果是:
Timer1 :05/30/2011 12:15:57 AM (12:16:59)
Timer1 :05/30/2011 12:16:57 AM (12:17:59) miss
Timer2 :05/30/2011 12:16:59 AM
Timer1 :05/30/2011 12:17:57 AM (12:18:59)
Timer1 :05/30/2011 12:18:57 AM (12:19:59) miss
Timer2 :05/30/2011 12:18:59 AM
Timer1 :05/30/2011 12:19:57 AM (12:20:59)
Timer1 :05/30/2011 12:20:57 AM (12:21:59) miss
Timer2 :05/30/2011 12:20:59 AM
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么timer2的timer1每次都缺少一次.
我的意思是Timer2应该在12:17:59开始,Timer1从上午12:16:57开始.
如何更改它以获得正确的算法?
我不确定你为什么要这样做,但它正如你设计的那样工作.当timer1滴答时,它会输出一条消息并打开timer2.然后timer1再次打勾,但是timer2已经打开,所以没有任何反应.然后timer2滴答并关闭.这就是为什么你为每个timer2获得两个timer1s.第二次尝试打开Timer2时,Timer2已经在运行.
如果你真的想让它正常工作,你可能需要添加第三个计时器,然后在两者之间交替.检查timer2是否正在运行,如果是,则启动timer3.否则启动timer2.
| 归档时间: |
|
| 查看次数: |
830 次 |
| 最近记录: |