In meinem letzten Posten habe ich den Gebrauch des WaitForSingleObject in Verhältnis zu mutexes und mögliche Wege diskutiert, gleichwertige Funktionalität auszuführen, wenn Portieren solchen Code zu GNU/Linux. In diesem Posten werde ich den Gebrauch von diesen API mit Ereignisobjekten in Microsoft Fenstern beschreiben und, dass mögliche Wege werde vorschlagen von Aufstellen GNU solchen Code/Linux oder Unix.
Zuerst ein Hintergrund auf Ereignisobjekten. Ein Ereignisobjekt ist nur ein anderes Artfenster Kernfahrdienstleiterobjekt. Von einem Codierungs prespective ist ein Ereignisobjekt ein Synchronisierungsobjekt, das sich eine oder mehr Kernfahrdienstleiterobjekte und einkapselt, dessen Synchronisierungssemantik accessable über WaitForSingleObject und seine Vettern ist. An irgendeiner gegebenen Zeit ist ein Synchronisierungsobjekt entweder nonsignaled oder signalisiert, d.h. das Objekt nur kann sein in einem von zwei möglichen Staaten.
Alle WaitFor Familie des APIs einschließlich WaitForSingleobject Wartezeit auf einem Objektgriff oder Griffen, bis einige angegebenen Kriterien getroffen ist. Die zwei grundlegenden Kriterien für diese ganzen APIs sind der signalisierte Staat des Objekts, auf dessen Griff, den es und ein Zeitsperrenwert wartet. Folglich wartet ein Faden, der dieser API ruft, bis das angegebene Objekt einträgt den signalisierten Staat oder die angegebene Zeitsperre hat abgelaufen. Klein oder keine CPU Zeit wird benutzt, wenn so ein Faden im Wartezeitstaat ist.
Im Fall von Ereignissen, kehren eine CreateEvent oder OpenEvent ein Griff zu einem Ereignisobjekt zurück. Wenn ein Ereignis im signalisierten Staat ist, den es bedeutet, dass, den das Ereignis die Kapazität hat, eine oder mehr Fäden freizugeben, die auf dieses besondere Ereignis warten, signalisiert zu werden. Wenn ein Ereignis ist im nonsignaled Staat es wird freigeben keinen wartenden Faden. Anfänglich ist der Staat eines Ereignisses nonsignaled. Ein Ereignisobjekt’s erklärt wird gesetzt explizit zu signalisierten durch SetEvent oder PulseEvent. Ereignisobjekte werden auch in überlappten Betrieben benutzt wie zum Beispiel lesend von einer Steckdose, in der den Ereignisobjektstaat verpackt, wird gesetzt zu signalisierten durch den Kern ziemlich als durch eine Anwendung.
Ereignisse kommen auch zwei Nachstellungstypen herein. Wenn ein Ereignis ein Handbuch-nachgestelltes Ereignis ist, dann alle WaitForSingleObjects Rückkehr jene Wartezeit für jenes Ereignis wenn doch gestaltet. In Anderem formuliert ein Handbuch-nachgestelltes Ereignis kann auslösen Handlung durch einen oder mehr WaitForSingleObject oder seine Vettern. Ein Handbuch-nachgestelltereignisobjekt’s erklärt muss nachgestellt werden explizit zu nonsignaled durch ResetEvent.
Für ein Auto-nachgestelltereignisobjekt WaitForSingleObject und es’s Verhältnisse nachstellen das

























