CreateEvent

L

laura84

Hallo,

ich bin ziemlicher Anfänger was C++ angeht und wurde nun in meinem Praktikum ins kalte Wasser geschubst, deswegen brauche ich eure Hilfe.

Es geht darum dass ich nicht verstehe was eine CreateEvent Funktion macht. Ich habe mir schon folgendes Beispiel angeschaut und auch durchgearbeitet und ausprobiert:
http://msdn.microsoft.com/en-us/library/ms686915(VS.85).aspx

Ich verstehe alles an diesem Beispiel, nur nicht wie diese CreateEvent Funktion arbeitet. Im Grunde geht es doch darum dass irgendetwas in den Speicher geschrieben wird und die Threads diesen dann auslesen sollen.? Das Event wird gleich am Anfang der WriteToBuffer Funktion aufgerufen, also muss es ja irgendwie damit zusammenhängen, allerdings weis ich nicht wie das mit den vorhandenen Übergabeparametern gehen soll. Nur der Objektname macht mich etwas stutzig weil da TEXT("WriteEvent") drin steht und aus der msdn Library kenne ich den 4. Übergabeparameter nur als reinen Namen.

Also konkret verstehe ich einfach nicht wie die CreateEvent Funktion einen schreibe- oder lese-Prozess auslösen soll.

Ich hoffe jemand versteht mein Problem und kann mir dabei helfen.
Vielen Dank schonmal.
 
Stark vereinfacht:

Stell dir ein Event wie ein boolean vor, das irgendwo herumliegt.

Ein Thread kann darauf warten, dass ein bestimmtes boolean einen Wert annimmt. D.h. der Thread wird nur indirekt gesteuert. Du setzt eigentlich nur mit SetEvent das boolean auf true. Sobald der Thread an die Reihe kommt, und merkt, dass sein boolean auf true steht, legt er los.


Man könnte theoretisch auch ein boolean verwenden, aber das ist nicht immer sicher. Daher gibt es für Threads eigene Mechanismen, die sicher stellen, dass nur ein Thread gleichzeitig auf ein Event zugreifen kann. Dafür muss man dann eben auch die zur Verfügung gestellten Methoden verwenden (WaitForSingleObject, WaitForMultipleObjects, etc.)
 
Zurück