当前位置: 代码迷 >> C# >> 时间间隔有关问题timespan
  详细解决方案

时间间隔有关问题timespan

热度:227   发布时间:2016-05-05 02:55:41.0
时间间隔问题timespan

string TimeStr = str[1];
?while(((DateTime.Now - smStart).TotalMinutes).ToString() == TimeStr)
?{
   MessageBox.Show("yes");
}

为什么不弹出对话框
------解决思路----------------------
比较时间就用整数比,哪有用字符串的。。。
TotalMinutes是double
------解决思路----------------------
一开始你的条件根本就没有成立 循环都不会进去。。
------解决思路----------------------
在主线程,你的程序代码都执行完毕了,才能交给windows去显示。这是基本道理。
------解决思路----------------------
引用:

string TimeStr = str[1];
?while(((DateTime.Now - smStart).TotalMinutes).ToString() == TimeStr)
?{
   MessageBox.Show("yes");
}

为什么不弹出对话框

如果要达到循环判断的目的
就不能把判定条件写在while的循环条件中
目前的写法,如果不满足,while就直接跳过了
改成这样

bool bLoopFlag = true;

while(bLoopFlag)
{
    if( (DateTime.Now - smStart).TotalMinutes).ToString() == TimeStr)
    {
           //do sth    
    }
    else
     {
                Sleep(1000);
     }
}


或者把判定代码放到timer中去,比自己处理循环更简单