BOOL bInitialState,
LPCTSTR lpName);
예를들어, Test001 이라는 이벤트 객체를 생성하고 이 객체에
이벤트가 발생하는지 5초간 대기하면서 체크하려면 아래와 같이 코드를 구성하면된다.
if(h_my_event != NULL)
{
DWORD state = WaitForSingleObject(h_my_event, 5000);
if(state == WAIT_TIMEOUT) ...; // 5초간 이벤트가 발생하지 않은 경우
else if(state == WAIT_OBJECT_0) ...; // 이벤트가 발생한 경우
}
CreateEvent 함수를 이용하여 이벤트 객체를 생성한 프로세스 또는 해당 프로세스가 생성한
추가적인 스레드는 WaitForSingleObject 같은 함수를 이용하여 해당 이벤트 객체에 이벤트가
발생하는지를 체크할수 있다.
#include#include using namespace std; HANDLE hEvent; DWORD WINAPI MainLoop(LPVOID iValue) { int iFinish = 10; for ( int i=0; i< iFinish; i++) cout << i << endl; // Loop End SetEvent( hEvent) ; return 0; } void main() { DWORD dwId; HANDLE hThread = CreateThread( NULL, 0, MainLoop, NULL, 0, &dwId); if ( hThread == NULL) { DWORD dwError = GetLastError(); cout << "Error in Create Thread :" << dwError << endl; return; } cout << "Create Thread !" << endl; hEvent = CreateEvent( NULL, FALSE, FALSE, "Test") ; cout << "Started waiting for the thread to complete." << endl; WaitForSingleObject( hEvent, 100 ); cout << "Thread Completed." << endl; if ( hEvent != INVALID_HANDLE_VALUE ) CloseHandle(hEvent); int val; cin >> val; }
'온라인게임' 카테고리의 다른 글
SQL 명령어 (0) | 2010.11.10 |
---|---|
Microsoft SQL Server (0) | 2010.11.10 |
map - stl에서 제공하는 자료형중 하나 (0) | 2010.11.08 |
warning C4819 (0) | 2010.11.05 |
윈도우 Console 실행 (0) | 2010.11.05 |