永发信息网

c#计时器timer在do while里为什么不执行?

答案:2  悬赏:70  手机版
解决时间 2021-01-14 10:53
c#计时器timer在do while里为什么不执行?
最佳答案
不要用do while,这样子根本不会执行到Timer里面的;
if (DateTime.Now > aftertime)
{
timer1.Stop();
timer1.Enabled = false;
break;
}
上面的代码写在Timer的Trick事件中看看;追问没有循环,if (DateTime.Now > aftertime)它只会判断一次啊,第一次判断肯定不成立的。因为要过5秒以后才成立追答但是它不成立就会一直 do while下去,跳不出循环的!你要理解do while循环是死循环追问DateTime.Now是当前电脑时间,每次判断它都是一个新的值。没有死循环的。

因为我在里面加个MessageBox.Show,它时间到了后就有弹出的。
只是不知道为什么,在do while里循环的时候timer1事件就没有触发了追答MessageBox.Show你需要手动点击,这个时候有中断,就会响应Timer的事件,否则就不会响应Timer的事件;

你尝试下加Sleep也会响应的
do
{
if (DateTime.Now > aftertime)
{
timer1.Stop();
timer1.Enabled = false;
break;
}
Thread.Sleep(100);
}
while (true);追问我定义了个全局静态变量t,t--。倒计时结束t=0就停止计时器。

但是我就是不明白,我上面代码在do while里循环的时候,timer1也是开启的,它的触发事件应该也发生才对啊。追答你把你的代码分开,放在两个Button里面就可以,这样有先后顺序:

button1:
DateTime nowtime = DateTime.Now;
DateTime aftertime = nowtime.AddSeconds(5); //aftertime是nowtime的5秒后
timer1.Start();//启动计时器
timer1.Enabled = true;//计时器事件开启触发。

button2:
do
{
if (DateTime.Now > aftertime)
{
timer1.Stop();
timer1.Enabled = false;
break;
}
}
while (true);

这样你点击button2的时候也会触发Timer事件
全部回答
你的Timer触发里的代码怎么写的?这里看到的仅仅是启用Timer,5秒后关闭Timer。
不过针对你这个代码说一句。
我情愿使用Sleep(5000)也不愿意使用你的dowhile啊……
CPU会一直在这个循环中消耗时间。虽然理论上不至于让机器死掉,但是怎么看也是一个不科学的代码。

你完全可以这么写
Timer.Enable = true;
Sleep(5000);
Timer.Enable = false;
或者这么写,在Timer的触发函数里加上
if(DateTimer.Now > aftertime)
Timer.Enable = false;
只不过需要将aftertime作为成员变量。追问我定义了个全局静态变量t,t--。倒计时结束就停止计时器。
但是我就是不明白,我上面代码在do while里循环的时候,timer1也是开启的,它的触发事件应该也发生才对啊。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
0.36X7又1/2+3.6%X27-36X0.002=? 简便算
有一首歌得歌词是我知道。。。不知道你,我见
0.4x加2.6x=5.4解方程
现在深圳学车要多少钱
老板送一把剑给部门经理!想知道老板是什么意
请问谁知道这个女的是谁吗?求解答
松茸贵吗,一般鲜松茸多少一斤的价格
卡西欧 g-shock系列时尚魔金双显运动石英男表
氮化硅是一种新型陶瓷材料的主要成分,能承受
大连星海广场现在的夜景最晚到几点?有什么特
我是一个农民,明年想开一个小型养猪场。但没
数控加工翻译
王者荣耀短腿鲁班怎么打李白
浅析如何提高小学数学教师素养
为什么在地球不会漂浮起来,则么在能在太空中
推荐资讯
孩子10岁可以自己改姓吗?需要什么手续?
一半人都会做错的题目,你敢挑战吗
0.72÷0.6=?
有没有在南北朝的某个著名诗人写的词
7.2的货车油多少钱一公里
五年级现在招生吗邢台胜利小学
Shesaidshewouldreturnthedictionarytome____
公司工伤问题
电脑为什么连接无线网有个感叹号
巫师3卡顿严重
YY毕加索哪里人
内蒙古人吃烧麦能喝茶水吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?