C++做while循环没有响应
嘿家伙我有一个做虽然循环它的简单,但程序进入无响应状态,而运行它继承了循环。C++做while循环没有响应
bool SetTime(const int hour,const int min,HWND sec)
{
do
{
time_t s=time(0);
tm t=*localtime(&s);
itoa(t.tm_sec,buf3,10);
SetWindowText(sec,buf3);
if (hour == t.tm_hour && min == t.tm_min)
{
exit(0);
}
Sleep(1000);
}
while(hour == t.tm_hour && min >t.tm_min);
}
运行每一秒,当它到达适当的时候停止
假设的Win32由于HWND,你是阻塞事件循环。如果你想推迟一个操作看看使用一个计时器。
谢谢我会尝试,我应该尝试一起拿出HWND吗? – user2167455 2013-03-13 22:22:53
@ user2167455:与其比较平等,您可能想要检查大于。根据其他任务和程序的运行情况,操作系统在特定时间和分钟安排任务的可能性可能较低。 – 2013-03-13 23:52:59
@Gary感谢您的提示,SetTimer()是我没有尝试过的最后一种循环类型,因为我认为它可能会返回相同类型的不响应操作,但它经历了很好的帮助,感谢所有那些对我的问题不利,谢谢你的否定性只会让我工作更努力:) – user2167455 2013-03-14 01:19:59
在哪个操作系统上?用哪个编译器?在哪个平台上? – 2013-03-13 22:15:48
您可能在此任务中挂着您的程序主线程。尝试使用多线程。 – Havenard 2013-03-13 22:16:06
使用Dev C++在Windows 7中运行 – user2167455 2013-03-13 22:23:28