string TimeStr = str[1];
?while(((DateTime.Now - smStart).TotalMinutes).ToString() == TimeStr)
?{
MessageBox.Show("yes");
}
为什么不弹出对话框
------解决思路----------------------
比较时间就用整数比,哪有用字符串的。。。
TotalMinutes是double
------解决思路----------------------
一开始你的条件根本就没有成立 循环都不会进去。。
------解决思路----------------------
在主线程,你的程序代码都执行完毕了,才能交给windows去显示。这是基本道理。
------解决思路----------------------
如果要达到循环判断的目的
就不能把判定条件写在while的循环条件中
目前的写法,如果不满足,while就直接跳过了
改成这样
bool bLoopFlag = true;
while(bLoopFlag)
{
if( (DateTime.Now - smStart).TotalMinutes).ToString() == TimeStr)
{
//do sth
}
else
{
Sleep(1000);
}
}
或者把判定代码放到timer中去,比自己处理循环更简单