int a=0;
TimeSpan time = DateTime.Now.TimeOfDay;
TimeSpan timer = dateTimePicker2.Value - dateTimePicker1.Value;
MessageBox.Show("Timer set. Device will shutdown in " + timer);
timer = timer + time;
while (time!=timer)
{
time = DateTime.Now.TimeOfDay; ;
if(a==0)
{
MessageBox.Show("B");
a = 1;
};
};
if (a == 1)
{
MessageBox.Show("A");
a = 0;
}
我在这段代码背后的逻辑是这样的:首先找到两个时间范围之间的差异。然后将此差异添加到当前系统时间并执行一个while循环以检查是否已达到该时间。如果未显示B.当前系统时间到达时间时,显示A.我已经花了几个小时而不能使它工作。运行此代码时,它只显示B而不是A. 我是视觉工作室的新手,这是我的第一个项目。
答案 0 :(得分:1)
问题很可能是这个测试:
while (time!=timer)
很可能当前时间永远不会与您第二次选择的时间完全相同。您应该将其更改为:
while (time < endTime)
有了这个,您就可以摆脱变量a
并只显示&#34; A&#34;一旦循环结束。
说完这一切之后,MessageBox.Show
会阻止循环直到你解雇它,所以你真的需要找到一些其他方式来表明你还在循环中。