不阻塞消息队循环的Sleep延时

void _Sleep_(UINT Delay_ms)
{
  DWORD dwTick = GetTickCount() + Delay_ms;
  while(GetTickCount() < dwTick)
  {
    MSG msg;
    if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {
      if (msg.message == WM_QUIT) break;
      TranslateMessage(&msg);
      DispatchMessage(&msg);
    }
    Sleep(0);
  }
}

你可能感兴趣的:(不阻塞消息队循环的Sleep延时)