Multithreaded Win32 GUI message loop

Posted by Dave18 on Stack Overflow See other posts from Stack Overflow or by Dave18
Published on 2010-06-05T07:26:51Z Indexed on 2010/06/05 7:32 UTC
Read the original article Hit count: 187

Filed under:
|

When do you need to use this type of modified message loop in multithreaded application?

DWORD nWaitCount;
HANDLE hWaitArray[4];
BOOL quit;
int exitCode;
while (!quit)
{
   MSG msg;
   int rc;
   rc = MsgWaitForMultipleObjects(nWaitCount, hWaitArray, FALSE, INFINITE,QS_ALLINPUT);

   if (rc == WAIT_OBJECT_O + nWaitCount)
   {
       while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
       {
        if (msg.message == WM_QUIT)
        {
            quit = TRUE;
            exitCode = msg.wParam;
            break;
        }
        TranslateMessage(&msg);
        DispatchMessage(&msg);
       }
   }
   else if (rc >= WAIT_OBJECT_0 && rc < WAIT_OBJECT_0 + nwaitCount)
   {
       int nlndex = rc - WAIT_OBJECT_0;
   }
   else if (rc >= WAIT_ABANDONED_0 && rc < WAIT_ABANDONED_0+ nWaitCount)
   {
       int nlndex = rc - WAIT_ABANDONED_O;
   }
}

© Stack Overflow or respective owner

Related posts about win32

Related posts about threads