Eseményobjektumok (szinkronizálás)
Az eseményobjektum olyan szinkronizálási objektum, amelynek állapota explicit módon jelezhető a SetEvent függvény használatával. Az alábbiakban az eseményobjektumok két típusa található.
Tárgy | Leírás |
---|---|
Manuális visszaállítási esemény | Olyan eseményobjektum, amelynek állapota addig marad jelezve, amíg a ResetEvent függvény nem állítja vissza explicit módon. A jelzés közben tetszőleges számú várakozó szál vagy szál, amely ezt követően ugyanazt az eseményobjektumot adja meg az várakozási függvényekegyikében, felszabadítható. |
Automatikus visszaállítási esemény | Egy eseményobjektum, amelynek állapota egyetlen várakozási szál felszabadításáig marad jelezve, ekkor a rendszer automatikusan nem hozzárendelt állapotra állítja az állapotot. Ha nem várnak szálak, az eseményobjektum állapota továbbra is jelezve marad. Ha egynél több szál várakozik, a rendszer kiválaszt egy várakozó szálat. Ne feltételezze az első, első utáni (FIFO) sorrendet. A külső események, például a kernel módú API-k módosíthatják a várakozási sorrendet. |
Az eseményobjektum akkor hasznos, ha jelet küld egy szálnak, amely azt jelzi, hogy egy adott esemény történt. Átfedésben lévő bemenetben és kimenetben például a rendszer egy megadott eseményobjektumot a jelzett állapotra állít be, amikor az átfedésben lévő művelet befejeződött. Egyetlen szál több egyidejű átfedésben lévő műveletben is megadhat különböző eseményobjektumokat, majd a több objektumból álló várakozási függvények egyikével várni az eseményobjektumok bármelyikének állapotát.
Egy szál a CreateEvent vagy CreateEventEx függvényt használja egy eseményobjektum létrehozásához. A létrehozási szál megadja az objektum kezdeti állapotát, valamint azt, hogy manuális alaphelyzetbe állítási vagy automatikus visszaállítási eseményobjektumról van-e szó. A létrehozási szál az eseményobjektum nevét is megadhatja. A más folyamatok szálai megnyithatnak egy leírót egy meglévő eseményobjektum számára úgy, hogy megadja a nevét az OpenEvent függvény hívásában. További információ a mutex-, esemény-, szemaphore- és időzítőobjektumok nevéről: folyamatközi szinkronizálási.
Kapcsolódó témakörök