/*
Create thread and create events
*/
#include "stdafx.h"
#include "windows.h"
HANDLE ghWriteEvent;
HANDLE myEvent;
//http://www.bogotobogo.com/cplusplus/multithreaded2B.php
int fThread() {
//Create the event object
ghWriteEvent = CreateEvent(
NULL, // default security attributes
TRUE, // manual-reset event
FALSE, // initial state is nonsignaled
TEXT("WriteEvent") // object name
);
myEvent = CreateEvent(0, 0, 0, 0);
if (ghWriteEvent == NULL)
{
printf("CreateEvent failed (%d)\n", GetLastError());
return 0;
}
long prev = 0;
while (true) {
long val = GetTickCount();
if (val - prev >= 1000) {
//printf("Time %d\n", val);
//Call event
SetEvent(ghWriteEvent);
SetEvent(myEvent);
prev = val;
}
}
return 0;
}
int main()
{
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)fThread, NULL, NULL, NULL);
while (true) {
WaitForSingleObject(ghWriteEvent, INFINITE);
WaitForSingleObject(myEvent, INFINITE);
printf("Event\n");
ResetEvent(ghWriteEvent);
}
getchar();
CloseHandle(myEvent);
return 0;
}