1

C++ アプリケーションがあり、1 分ごとに関数を呼び出したいと考えています。ある友人からこのコードをもらいました (彼のおかげです)

void CALLBACK f(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime)
{
  printf("Hello");
}

int main() 
{
  MSG msg;

  SetTimer(NULL, 0, 1000*60,(TIMERPROC) &f);
  while(GetMessage(&msg, NULL, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
//Here I have the rest of my appliation
  return 0;
}

しかし、しばらくすると残りのプログラムを実行できません。そのため、すべてのコードと関数 f を毎分実行するソリューションを探しています。

4

1 に答える 1

0

Windows タイマー メッセージを使用しています。アプリケーションは、 がスレッド キューにポストされるGetMessageまで停止します。WM_QUIT

最も簡単な方法は、スレッドを使用してそこで f を呼び出し、その後 1 分間スリープすることです。

于 2013-03-28T16:20:56.507 に答える