Megosztás a következőn keresztül:


A szinkronizálás újdonságai

A Windows a következő új programozási elemeket tartalmazza a szinkronizáláshoz.

Windows 8

Új funkciók

DeleteSynchronizationBarrier

Szinkronizálási akadály törlése.

EnterSynchronizationBarrier

A hívószál szinkronizálási korlátnál várakozik, amíg a szálak maximális száma be nem lép az akadályba.

GetOverlappedResultEx

Lekéri a megadott fájl, elnevezett cső vagy kommunikációs eszköz átfedésben lévő műveletének eredményeit a megadott időkorláton belül. A hívószál riasztási várakozást hajthat végre.

InitializeSynchronizationBarrier

Megadja az új szinkronizálási korlát szálainak és pörgetéseinek maximális számát.

WaitOnAddress

Megvárja, amíg a megadott cím értéke megváltozik.

WakeByAddressAll

Felébreszti az összes olyan szálat, amely egy cím értékének módosítására vár.

WakeByAddressSingle

Felébreszt egy szálat, amely egy cím értékének módosítására vár.

Új összekapcsolt függvények

InterlockedAddNoFence

Atomi összeadási műveletet hajt végre a megadott LONG értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedAddNoFence64

Atomi összeadási műveletet hajt végre a megadott LONGLONG értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedAndNoFence

Atomi ÉS műveletet hajt végre a megadott LONG értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedAnd8NoFence

Atomi ÉS műveletet hajt végre a megadott karakter értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedAnd16NoFence

Atomi ÉS műveletet hajt végre a megadott SHORT értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedAnd64NoFence

Atomi ÉS műveletet hajt végre a megadott LONGLONG értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedBitTestAndComplement64

Teszteli a megadott LONG64 értékét, és kiegészíti azt. A művelet atomi.

InterlockedBitTestAndResetAcquire

Teszteli a megadott LONG érték adott bitjét, és 0-ra állítja. A művelet atomi, és a rendszer memóriarendezési szemantikával hajtja végre.

InterlockedBitTestAndResetRelease

Teszteli a megadott LONG érték adott bitjét, és 0-ra állítja. A művelet atomi, és memóriakioldási szemantikával történik.

InterlockedBitTestAndSetAcquire

Teszteli a megadott LONG érték megadott bitét, és 1 értékre állítja. A művelet atomikus, és megszerző memóriarendezési szemantikával kerül végrehajtásra.

InterlockedBitTestAndSetRelease

Teszteli a megadott LONG érték megadott bitét, és 1 értékre állítja. A művelet atomi, és kiadási memória-rendezési szemantikával hajtódik végre.

InterlockedCompareExchangeNoFence

Atomi összehasonlítási és csereműveletet hajt végre a megadott értékeken. A függvény összehasonlít két megadott 32 bites értéket, és az összehasonlítás eredménye alapján kicseréli azokat egy másik 32 bites értékkel. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedCompareExchange16

Atomi összehasonlítási és csereműveletet hajt végre a megadott értékeken. A függvény összehasonlít két megadott 16 bites értéket, és az összehasonlítás eredménye alapján egy másik 16 bites értékre cseréli őket.

InterlockedCompareExchange16Acquire

Atomi összehasonlítási és csereműveletet hajt végre a megadott értékeken. A függvény két megadott 16 bites értéket hasonlít össze, és egy másik 16 bites értékkel cseréli fel őket az összehasonlítás eredménye alapján. A műveletet a rendszer a memóriarendezés szemantikájának beszerzésével hajtja végre.

InterlockedCompareExchange16Release

Atomi összehasonlítási és csereműveletet hajt végre a megadott értékeken. A függvény összehasonlít két megadott 16 bites értéket, és az összehasonlítás eredménye alapján kicseréli őket egy másik 16 bites értékre. A cserét a "release" memóriarendelési szemantikával hajtják végre.

InterlockedCompareExchange16NoFence

Atomi összehasonlítási és csereműveletet hajt végre a megadott értékeken. A függvény összehasonlít két megadott 16 bites értéket, és az összehasonlítás eredménye alapján kicseréli egy másik 16 bites értékkel. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedCompareExchangeNoFence64

Atomi összehasonlítási és csereműveletet hajt végre a megadott értékeken. A függvény összehasonlít két megadott 64 bites értéket, és az összehasonlítás eredménye alapján egy másik 64 bites értékkel cserél. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedCompareExchange128

Atomi összehasonlítási és csereműveletet hajt végre a megadott értékeken. A függvény összehasonlít két megadott 128 bites értéket, és az összehasonlítás eredménye alapján kicseréli őket egy másik 128 bites értékre.

InterlockedCompareExchangePointerNoFence

Atomi összehasonlítási és csereműveletet hajt végre a megadott értékeken. A függvény két megadott mutatóértéket hasonlít össze, és az összehasonlítás eredménye alapján egy másik mutatóértéket ad vissza. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedDecrementNoFence

A megadott 32 bites változó értéke atomi műveletként csökken (egytel csökken). A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedDecrement16

A megadott 16 bites változó értéke atomi műveletként csökken (egytel csökken).

InterlockedDecrement16Acquire

A megadott 16 bites változó értéke atomi műveletként csökken (egytel csökken). A műveletet a rendszer a memóriarendezés szemantikájának beszerzésével hajtja végre.

InterlockedDecrement16Release

A megadott 16 bites változó értéke atomi műveletként csökken (egytel csökken). A műveletet a kiadási memóriarendezés szemantikája hajtja végre.

InterlockedDecrement16NoFence

A megadott 16 bites változó értéke atomi műveletként csökken (egytel csökken). A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedDecrementNoFence64

A megadott 64 bites változó értéke atomi műveletként csökken (eggyel csökken). A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedExchangeNoFence

Egy 64 bites változót állít be a megadott értékre atomi műveletként. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedExchange8

Egy 8 bites változót állít be a megadott értékre atomi műveletként.

InterlockedExchange16Acquire

Egy 16 bites változót állít be a megadott értékre atomi műveletként. A műveletet a rendszer a memóriarendezés szemantikájának beszerzésével hajtja végre.

InterlockedExchange16NoFence

Egy 16 bites változót állít be a megadott értékre atomi műveletként. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedExchangeNoFence64

Egy 64 bites változót állít be a megadott értékre atomi műveletként. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedExchangePointerNoFence

Atomilag kicseréli a címpárokat. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedExchangeAddNoFence

Két 32 bites érték atomi összeadását hajtja végre. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedExchangeAddNoFence64

Két 64 bites érték atomi összeadását hajtja végre. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedIncrementNoFence

A megadott 32 bites változó értékét atomműveletként növekményesen növeli (eggyel növeli). A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedIncrement16

A megadott 16 bites változó értékét atomműveletként növekményesen növeli (eggyel növeli).

InterlockedIncrement16Acquire

A megadott 16 bites változó értékét atomműveletként növekményesen növeli (eggyel növeli). A műveletet a rendszer a memóriarendezés szemantikájának beszerzésével hajtja végre.

InterlockedIncrement16Release

A megadott 16 bites változó értékét atomműveletként növekményesen növeli (eggyel növeli). A művelet a kiadási memóriarendezés szemantikájának használatával történik.

InterlockedIncrement16NoFence

A megadott 16 bites változó értékét atomműveletként növekményesen növeli (eggyel növeli). A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedIncrementNoFence64

A megadott 64 bites változó értékét atomműveletként növekményesen növeli (eggyel növeli). A művelet atomi módon, de memóriakorlátok használata nélkül történik.

Egymásba fonódott vagy nincs kerítés

Atomi VAGY műveletet hajt végre a megadott LONG értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedOr8NoFence

Atomi VAGY műveletet hajt végre a megadott karakter értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedOr16NoFence

Atomi VAGY műveletet hajt végre a megadott SHORT értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedOr64NoFence

Atomi VAGY műveletet hajt végre a megadott LONGLONG értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedPushListSListEx

Egy önállóan csatolt listát szúr be egy másik, egymáshoz kapcsolódó lista elejére. A listákhoz való hozzáférés szinkronizálva van egy többprocesszoros rendszeren. A metódus ezen verziója nem használja a __fastcall hívási konvencióját.

InterlockedXorNoFence

Atomi XOR-műveletet hajt végre a megadott LONG értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedXor8NoFence

Atomi XOR-műveletet hajt végre a megadott karakter értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedXor16NoFence

Atomi XOR-műveletet hajt végre a megadott SHORT értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

InterlockedXor64NoFence

Atomi XOR-műveletet hajt végre a megadott LONGLONG értékeken. A művelet atomi módon, de memóriakorlátok használata nélkül történik.

Windows 7

Új funkciók

SetWaitableTimerEx

Aktiválja a megadott várakozó időzítőt, és környezeti információkat biztosít az időzítőhöz.

TryAcquireSRWLockExclusive

Egy vékony olvasó/író (SRW) zár kizárólagos módban történő beszerzésére tett kísérlet. Ha a hívás sikeres, a hívó szál átveszi a zár tulajdonjogát.

TryAcquireSRWLockShared

Egy vékony olvasó/író (SRW) zárolás megosztott módban történő megszerzésének kísérletei. Ha a hívás sikeres, a hívó szál megszerzi a zárolás tulajdonjogát.

Új struktúrák

REASON_CONTEXT

A SetWaitableTimerExáltal aktivált időzítő környezeti adatait tartalmazza.