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); 
} 

运行每一秒,当它到达适当的时候停止

+0

在哪个操作系统上?用哪个编译器?在哪个平台上? – 2013-03-13 22:15:48

+0

您可能在此任务中挂着您的程序主线程。尝试使用多线程。 – Havenard 2013-03-13 22:16:06

+0

使用Dev C++在Windows 7中运行 – user2167455 2013-03-13 22:23:28

假设的Win32由于HWND,你是阻塞事件循环。如果你想推迟一个操作看看使用一个计时器。

+0

谢谢我会尝试,我应该尝试一起拿出HWND吗? – user2167455 2013-03-13 22:22:53

+0

@ user2167455:与其比较平等,您可能想要检查大于。根据其他任务和程序的运行情况,操作系统在特定时间和分钟安排任务的可能性可能较低。 – 2013-03-13 23:52:59

+0

@Gary感谢您的提示,SetTimer()是我没有尝试过的最后一种循环类型,因为我认为它可能会返回相同类型的不响应操作,但它经历了很好的帮助,感谢所有那些对我的问题不利,谢谢你的否定性只会让我工作更努力:) – user2167455 2013-03-14 01:19:59