最近刚刚入门VS,使用的语言环境是C#,在我编写一些小程序时经常发现如果有Timer控件同时star,并同时执行各自的事件,有时候会互相起冲突,经过我反复调试,发现代码编写并没有问题,但总会在运行时随机的出现某一个timer被stop,导致这个timer所控制的事件也无法执行。
郁闷啊,无奈之际,我采用了汇编语言的思想,将每一个timer star之前加上一段延迟代码。结果就正常了。例如:
我现在有4个timer,分别是timer1,timer2,timer3,timer4。
以前的程序是。
…………
/*依次启动4个timer*/
timer1.Star();
timer2.Star();
timer3.Star();
timer4.Star();
…………
/*后续其他代码*/< p>
这样运行就会经常随机的停止其中一个timer控件。
后来我采用这样的代码,就解决了。
…………
/*依次启动4个timer*/
timer1.Star();
for (int i = 0; i <10; i++)
{
int temp = i;
}
timer2.Star();
for (int i = 0; i <10; i++)
{
int temp = i;
}
timer3.Star();
for (int i = 0; i <10; i++)
{
int temp = i;
}
timer4.Star();
/*后续其他代码*/
结果就一切都正常了,我也不知道为什么会这样,难道真的会和时钟周期相关?
浙公网安备 33010602011771号