Delen via


Wat is er nieuw in synchronisatie

Windows bevat de volgende nieuwe programmeerelementen voor synchronisatie.

Windows 8

Nieuwe functies

DeleteSynchronisatieBarrière

Hiermee verwijdert u een synchronisatiebarrière.

EnterSynchronizationBarrier

Zorgt ervoor dat de aanroepende thread bij een synchronisatiebarrière wacht totdat het maximum aantal threads de barrière heeft binnengegaan.

GetOverlappedResultEx

Haalt de resultaten van een overlappende bewerking op het opgegeven bestand, de benoemde pipe of het communicatieapparaat op binnen het opgegeven time-outinterval. De aanroepende thread kan een alerte wacht uitvoeren.

InitialiseerSynchronisatieBarrière

Hiermee geeft u het maximum aantal threads en aantal kringen voor een nieuwe synchronisatiebarrière.

WaitOnAddress

Wacht tot de waarde op het opgegeven adres is gewijzigd.

WakeByAddressAll

Hiermee worden alle threads geactiveerd die wachten tot de waarde van een adres verandert.

WakeByAddressSingle

Hiermee wordt één thread geactiveerd die wacht tot de waarde van een adres is gewijzigd.

Nieuwe vergrendelde functies

InterlockedAddNoFence

Voert een atomische optellingsbewerking uit op de opgegeven LONG waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedAddNoFence64

Voert een atomische optellingsbewerking uit op de opgegeven LONGLONG waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedAndNoFence

Voert een atomische AND-bewerking uit op de opgegeven LONG-waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedAnd8NoFence

Voert een atomische AND-bewerking uit op de opgegeven teken waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedAnd16NoFence

Voert een atomische AND-bewerking uit op de opgegeven SHORT waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedAnd64NoFence

Voert een atomische AND-bewerking uit op de opgegeven LONGLONG waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedBitTestAndComplement64-

Test de opgegeven bit van de opgegeven LONG64 waarde en vult deze aan. De bewerking is atomisch.

InterlockedBitTestAndResetAcquire

Test de opgegeven bit van de opgegeven LONG waarde en stelt deze in op 0. De bewerking is atomisch en wordt uitgevoerd met acquisitie-geheugenordeningsemantiek.

InterlockedBitTestAndResetRelease

Test de opgegeven bit van de opgegeven LONG waarde en stelt deze in op 0. De bewerking is atomisch en wordt uitgevoerd met behulp van semantiek voor geheugenrelease.

InterlockedBitTestAndSetAcquire-

Test het opgegeven bit van de opgegeven LONG waarde en zet het op 1. De bewerking is atomisch en wordt uitgevoerd met semantiek voor het verkrijgen van geheugenvolgorde.

InterlockedBitTestAndSetRelease

Test de opgegeven bit van de opgegeven LONG waarde en zet deze op 1. De bewerking is atomair en wordt uitgevoerd met semantiek voor geheugenordening bij vrijgave.

InterlockedCompareExchangeNoFence

Voert een atomische vergelijkings- en uitwisselingsbewerking uit op de opgegeven waarden. De functie vergelijkt twee opgegeven 32-bits waarden en uitwisselingen met een andere 32-bits waarde op basis van het resultaat van de vergelijking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedCompareExchange16

Voert een atomische vergelijkings- en uitwisselingsbewerking uit op de opgegeven waarden. De functie vergelijkt twee opgegeven 16-bits waarden en wisselt ze uit met een andere 16-bits waarde op basis van het vergelijkingresultaat.

InterlockedCompareExchange16Acquire

Voert een atomische vergelijkings- en uitwisselingsbewerking uit op de opgegeven waarden. De functie vergelijkt twee opgegeven 16-bits waarden en wisselt op basis van het resultaat van de vergelijking uit met een andere 16-bits waarde. De bewerking wordt uitgevoerd met semantiek voor het verkrijgen van geheugenvolgorde.

InterlockedCompareExchange16Release

Voert een atomische vergelijkings- en uitwisselingsbewerking uit op de opgegeven waarden. De functie vergelijkt twee opgegeven 16-bits waarden en wisselt deze om met een andere 16-bits waarde op basis van het vergelijkingsresultaat. De uitwisseling wordt uitgevoerd met semantiek voor het vrijgeven van geheugenvolgorde.

InterlockedCompareExchange16NoFence

Voert een atomische vergelijkings- en uitwisselingsbewerking uit op de opgegeven waarden. De functie vergelijkt twee opgegeven 16-bits waarden en wisselt deze uit met een andere 16-bits waarde op basis van het resultaat van de vergelijking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedCompareExchangeNoFence64

Voert een atomische vergelijkings- en uitwisselingsbewerking uit op de opgegeven waarden. De functie vergelijkt twee opgegeven 64-bits waarden en uitwisselingen met een andere 64-bits waarde op basis van het resultaat van de vergelijking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedCompareExchange128

Voert een atomische vergelijkings- en uitwisselingsbewerking uit op de opgegeven waarden. De functie vergelijkt twee opgegeven 128-bits waarden en uitwisselingen met een andere 128-bits waarde op basis van het resultaat van de vergelijking.

InterlockedCompareExchangePointerNoFence

Voert een atomische vergelijkings- en uitwisselingsbewerking uit op de opgegeven waarden. De functie vergelijkt twee opgegeven aanwijzerwaarden en uitwisselingen met een andere aanwijzerwaarde op basis van het resultaat van de vergelijking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedDecrementNoFence

De waarde van de opgegeven 32-bits variabele neemt af (verlaagt met één) als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedDecrement16

De waarde van de opgegeven 16-bits variabele neemt af (verlaagt met één) als een atomische bewerking.

InterlockedDecrement16Acquire

De waarde van de opgegeven 16-bits variabele neemt af (verlaagt met één) als een atomische bewerking. De bewerking wordt uitgevoerd met semantiek voor het verkrijgen van geheugenvolgorde.

InterlockedDecrement16Release

De waarde van de opgegeven 16-bits variabele neemt af (verlaagt met één) als een atomische bewerking. De bewerking wordt uitgevoerd met semantiek voor het vrijgeven van geheugenvolgorde.

InterlockedDecrement16NoFence

De waarde van de opgegeven 16-bits variabele neemt af (verlaagt met één) als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedDecrementNoFence64

De waarde van de opgegeven 64-bits variabele neemt af (verlaagt met één) als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedExchangeNoFence

Hiermee stelt u een 64-bits variabele in op de opgegeven waarde als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedExchange8

Hiermee stelt u een 8-bits variabele in op de opgegeven waarde als een atomische bewerking.

InterlockedExchange16Acquire

Hiermee stelt u een 16-bits variabele in op de opgegeven waarde als een atomische bewerking. De bewerking wordt uitgevoerd met behulp van semantiek voor het verkrijgen van geheugenvolgorde.

InterlockedExchange16NoFence

Hiermee stelt u een 16-bits variabele in op de opgegeven waarde als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedExchangeNoFence64

Hiermee stelt u een 64-bits variabele in op de opgegeven waarde als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedExchangePointerNoFence-

Atomisch wisselen een paar adressen uit. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedExchangeAddNoFence

Voert een atomische toevoeging van twee 32-bits waarden uit. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedExchangeAddNoFence64

Voert een atomische toevoeging van twee 64-bits waarden uit. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedIncrementNoFence

Verhoogt (met één) de waarde van de opgegeven 32-bits variabele als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedIncrement16

Verhoogt (met één) de waarde van de opgegeven 16-bits variabele als een atomische bewerking.

InterlockedIncrement16Acquire

Verhoogt (met één) de waarde van de opgegeven 16-bits variabele als een atomische bewerking. De bewerking wordt uitgevoerd met behulp van semantiek voor het verkrijgen van geheugenvolgorde.

InterlockedIncrement16Release

Verhoogt (met één) de waarde van de opgegeven 16-bits variabele als een atomische bewerking. De bewerking wordt uitgevoerd met behulp van de release-geheugenorderingsemantiek.

InterlockedIncrement16NoFence

Verhoogt (met één) de waarde van de opgegeven 16-bits variabele als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedIncrementNoFence64

Verhoogt (met één) de waarde van de opgegeven 64-bits variabele als een atomische bewerking. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedOrNoFence-

Voert een atomische OR-bewerking uit op de opgegeven LONG-waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedOr8NoFence

Voert een atomische OR-bewerking uit op de opgegeven teken waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedOr16NoFence

Voert een atomische OR-bewerking uit op de opgegeven SHORT-waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedOr64NoFence

Voert een atomische OR-bewerking uit op de opgegeven LONGLONG waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedPushListSListEx

Voegt een singly-gekoppelde lijst toe aan de voorzijde van een andere singly-gekoppelde lijst. Toegang tot de lijsten wordt gesynchroniseerd op een multiprocessorsysteem. Deze versie van de methode maakt geen gebruik van de __fastcall aanroepconventie.

InterlockedXorNoFence

Voert een atomische XOR-bewerking uit op de opgegeven LONG waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedXor8NoFence

Voert een atomische XOR-bewerking uit op de opgegeven teken waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedXor16NoFence

Voert een atomische XOR-bewerking uit op de opgegeven SHORT waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

InterlockedXor64NoFence

Voert een atomische XOR-bewerking uit op de opgegeven LONGLONG waarden. De bewerking wordt atomisch uitgevoerd, maar zonder geheugenbarrières te gebruiken.

Windows 7

Nieuwe functies

SetWaitableTimerEx

Hiermee activeert u de opgegeven wachttijdtimer en geeft u contextinformatie voor de timer.

TryAcquireSRWLockExclusive

Probeert om een slanke lezer/schrijver (SRW)-vergrendeling in exclusieve modus te verkrijgen. Als de aanroep is geslaagd, heeft de aanroepende thread het eigendom van de vergrendeling.

TryAcquireSRWLockShared

Pogingen om een slanke lezer/schrijververgrendeling (SRW) te verkrijgen in de gedeelde modus. Als de aanroep is geslaagd, heeft de aanroepende thread het eigendom van de vergrendeling.

Nieuwe structuren

REASON_CONTEXT

Bevat contextinformatie voor een timer die is geactiveerd met SetWaitableTimerEx.