-10

やあ、私は単純な do 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);
 }

毎秒実行され、適切な時間に達すると停止します

4

1 に答える 1

4

HWND が原因で Win32 を想定すると、イベント ループがブロックされます。操作を延期したい場合は、タイマーの使用を検討してください。

于 2013-03-13T22:16:43.253 に答える