循环定时执行程序问题? 解决即结贴!!!!(望得实质性回答)
我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循环里面可能才是你需要的逻辑。