日期:2014-05-19  浏览次数:20839 次

循环定时执行程序问题? 解决即结贴!!!!(望得实质性回答)
我ListView里有时间:
09:30
09:31
09:32
...
我想在这指定的时间内都执行MessageBox.Show( "OK ");
我的代码是:
private   void   timer1_Tick(object   sender,   EventArgs   e)
{
for   (int   j   =   0;   j   <   listView.Items.Count;   j++)
{
        D1   =   listValue.Items[j].Text.Trim();
}
while(DateTime.Now.ToString( "HH:mm ")==D1)
{
        MessageBox.Show( "OK ");
        break;
}
}
问题是:到指定的时间内有时候执行,有时候不执行,如09:30执行,09:31不执行,不知道是什么原因,
我的timer1间隔为1000

求得到实质性回答.


------解决方案--------------------
简单一点,把timer1间隔设为900就行了。
------解决方案--------------------
这怎么会执行呢..只能执行一次吧.

把while放在for里就可以了.
------解决方案--------------------
timer1的interval的设置?以及start、enabled的设置呢?
------解决方案--------------------
定时器原本也不是那么精确的,和程序本身代码效率也有关系的;
------解决方案--------------------
貌似D1 如何循环都是取了最后一个值吧
------解决方案--------------------
这段代码好象永远都只会显示最后那个时间吧.
二楼的正解
------解决方案--------------------
不能保证Timer的Tick事件正好能在指定的时间发生!

Timer只是在指定的时间间隔内发生,但是发生的时刻未知。
------解决方案--------------------
你的代码不是很清楚做什么用途,感觉思路上不太合理。

从写代码的直觉上,感觉你的While循环是不需要的,改为一个判断语句放到For循环里面可能才是你需要的逻辑。