07.03.2013 Views

Multithreading Multi-Threaded Programming

Multithreading Multi-Threaded Programming

Multithreading Multi-Threaded Programming

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Example of Threads Pool –Thread function<br />

UINT ComputingThread(LPVOID lpvData)<br />

{<br />

DWORD dwWait; BOOL bStop=FALSE;<br />

HANDLE hTerminateSignal = (HANDLE)lpvData;<br />

while(!bStop)<br />

{<br />

dwWait = MsgWaitFor<strong>Multi</strong>pleObjects(1, &hTerminateSignal, FALSE, 0,<br />

QS_ALLINPUT);<br />

MSG msg;<br />

while(PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE))<br />

{<br />

TranslateMessage(&msg);<br />

DispatchMessage(&msg);<br />

}<br />

if(dwWait == WAIT_TIMEOUT)<br />

{ … /*computing */ }<br />

}else if(dwWait == WAIT_OBJECT_0) {<br />

break; // Terminate signal set. Break out of loop<br />

} //End Of if(dwWait == WAIT_TIMEOUT)<br />

}//End Of while(!bStop)<br />

::PostMessage(g_hWndMain, MYWM_TERMINATING, GetCurrentThreadId(), 0);<br />

}<br />

55<br />

Advanced Windows Network <strong>Programming</strong><br />

11/11/12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!