In mijn laatste post ik het gebruik van WaitForSingleObject met betrekking tot mutexes en mogelijke manieren besprak om gelijkwaardige functionaliteit toen porting dergelijke code aan GNU/Linux uit te voeren. In deze post zal ik het gebruik van dit API met gebeurtenisvoorwerpen in Microsoft Windows beschrijven en zal mogelijke manieren voorstellen om dergelijke code aan GNU/Linux of Unix te posten.
Eerst, heeft wat achtergrond op gebeurtenis bezwaar. Een gebeurtenisvoorwerp is enkel een ander type van het voorwerp van de de pitverzender van Vensters. Van een prespective codage, is een gebeurtenisvoorwerp een synchronisatievoorwerp dat één of meerdere voorwerpen inkapselt van de pitverzender en de waarvan synchronisatiesemantiek via WaitForSingleObject en zijn neven toegankelijk is. In om het even welke bepaalde tijd is een synchronisatievoorwerp of nonsignaled of signaleerde, d.w.z. kan het voorwerp slechts in één van twee mogelijke staten zijn.
Alle familie WaitFor van APIs met inbegrip van WaitForSingleobject wacht op een objecten handvat of handvatten tot sommige gespecificeerde criteria met. is. De twee basiscriteria voor al deze APIs zijn de gesignaleerde staat van het voorwerp op waarvan handvat het wacht en een onderbrekingswaarde. Aldus een draad die dit API roept wacht tot het gespecificeerde voorwerp ingaat de gesignaleerde staat of de gespecificeerde onderbreking is verlopen. Weinig of geen Cpu-tijd wordt gebruikt wanneer zulk een draad in de wachttijdstaat is.
In het geval van gebeurtenissen, komen een CreateEvent of een OpenEvent een handvat op een gebeurtenisvoorwerp terug. Wanneer een gebeurtenis in de gesignaleerde staat is betekent het dat dat de gebeurtenis heeft de capaciteit om één of meerdere draden vrij te geven wachtend op deze bepaalde te signaleren gebeurtenis. Wanneer een gebeurtenis in nonsignaled staat is het geen het wachten draad zal vrijgeven. Aanvankelijk is de staat van een gebeurtenis nonsignaled. De staat van gebeurtenisobjecten wordt geplaatst uitdrukkelijk aan gesignaleerd door SetEvent of PulseEvent. De voorwerpen van de gebeurtenis worden ook gebruikt in overlapte verrichtingen zoals lezing van een contactdoos, waarbij de gebeurtenisobjecten staat aan gesignaleerd door de pit eerder dan door een toepassing wordt geplaatst.
De gebeurtenissen komen ook in twee teruggestelde types. Als een gebeurtenis een het hand-terugstellengebeurtenis is, dan al terugkeer WaitForSingleObjects dat op die gebeurtenis als zo gevormd wacht. Met andere woorden kan een het hand-terugstellengebeurtenis actie door één of meerdere WaitForSingleObject of zijn neven teweegbrengen. De staat van van de het hand-terugstellengebeurtenis objecten moet worden teruggesteld uitdrukkelijk aan nonsignaled door ResetEvent.
Voor een voorwerp van de het auto-terugstellengebeurtenis, is WaitForSingleObject en het teruggesteld relaties

























