Freigeben über


InterlockedExchangeAdd-Funktion (winnt.h)

Führt eine atomige Addition von zwei 32-Bit-Werten durch.

Verwenden Sie zum Arbeiten mit 64-Bit-Werten die InterlockedExchangeAdd64--Funktion.

Syntax

LONG InterlockedExchangeAdd(
  [in, out] LONG volatile *Addend,
  [in]      LONG          Value
);

Parameter

[in, out] Addend

Ein Zeiger auf eine Variable. Der Wert dieser Variablen wird durch das Ergebnis des Vorgangs ersetzt.

[in] Value

Der Wert, der der Variablen hinzugefügt werden soll, auf die der Addend-Parameter verweist.

Rückgabewert

Die Funktion gibt den Anfangswert des Addend-Parameters zurück.

Bemerkungen

Die Funktion führt eine atome Addition von Wert zu dem Wert aus, auf den durch Addendverwiesen wird. Das Ergebnis wird in der durch Addendangegebenen Adresse gespeichert. Die Funktion gibt den Anfangswert der Variablen zurück, auf die Addendverweist.

Die Variablen für diese Funktion müssen an einer 32-Bit-Grenze ausgerichtet werden; andernfalls verhält sich diese Funktion auf Multiprozessor x86-Systemen und anderen Nicht-x86-Systemen unvorhersehbar. Siehe _aligned_malloc.

Die verriegelten Funktionen bieten einen einfachen Mechanismus zum Synchronisieren des Zugriffs auf eine Variable, die von mehreren Threads gemeinsam genutzt wird. Diese Funktion ist atomar in Bezug auf Aufrufe anderer verzahnter Funktionen.

Diese Funktion wird mithilfe eines systeminternen Compilers implementiert. Weitere Informationen finden Sie in der WinBase.h-Headerdatei und _InterlockedExchangeAdd

Diese Funktion generiert eine vollständige Speicherbarriere (oder einen Zaun), um sicherzustellen, dass Speichervorgänge in der Reihenfolge abgeschlossen werden.

Itanium-basierte Systeme: Verwenden Sie für leistungskritische Anwendungen stattdessen InterlockedExchangeAddAcquire.

Hinweis Diese Funktion wird auf Windows RT-basierten Systemen unterstützt.
 

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- winnt.h (enthalten Windows.h)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

Interlocked Variable Access

InterlockedCompareExchange

InterlockedExchange-

InterlockedExchangeAdd64-

InterlockedExchangeAddAcquire

">InterlockedExchangeAddAcquire64

InterlockedExchangeAddNoFence-

InterlockedExchangeAddNoFence64

<ein href="/previous-versions/windows/desktop/legacy/ms683605(v=vs.85)". InterlockedExchangeAddRelease

InterlockedExchangeAddRelease64-

InterlockedExchangeSubtract-

Synchronisierungsfunktionen