Per creare un evento si usa la funzione CreateEvent:
CreateEvent |
HANDLE
CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManuealReset, BOOL bInitialize, LPCSTR lpName ) |
Quando l'evento accade si chiama la funzione SetEvent.
BOOL SetEvent ( HANDLE hEvent)
SetEvent segnala al SO che l'evento si è verificato e questo provoca il ritorno di WaitForSingleObject Se abbiamo scelto il reset manuale (bManualreset = TRUE ) dobbiamo allora chiamare la funzione ResetEvent se vogliamo che l'evento si verifichi nuovamente.
BOOL ResetEvent (HANDLE hEvent)
Se invece poniamo bManualreset = FALSE l’evento, dopo che accade rimane segnalato finchè qualche thread che aspetta non viene rilasciato. il sistema pone l’evento in stato di non segnalato automaticamente non appena il primo WaitForSingleObject ritorna
Per chiudere un evento si usa CloseHandle .