Freigeben über


InterlockedExchange-Funktion (winnt.h)

Legt eine 32-Bit-Variable auf den angegebenen Wert als Atomvorgang fest.

Verwenden Sie zum Arbeiten mit einer Zeigervariablen die InterlockedExchangePointer--Funktion.

Verwenden Sie die InterlockedExchange16--Funktion, um eine 16-Bit-Variable zu verwenden.

Verwenden Sie die InterlockedExchange64--Funktion, um eine 64-Bit-Variable zu verwenden.

Syntax

LONG InterlockedExchange(
  [in, out] LONG volatile *Target,
  [in]      LONG          Value
);

Parameter

[in, out] Target

Ein Zeiger auf den wert, der ausgetauscht werden soll. Die Funktion legt diese Variable auf Valuefest und gibt den vorherigen Wert zurück.

[in] Value

Der wert, der mit dem wert ausgetauscht werden soll, auf den durch Targetverwiesen wird.

Rückgabewert

Die Funktion gibt den Anfangswert des parameters Target zurück.

Bemerkungen

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 _InterlockedExchange.

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 InterlockedExchangeAcquire-.

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-

InterlockedExchange16-

InterlockedExchange16Acquire-

InterlockedExchange16NoFence-

InterlockedExchange64-

InterlockedExchange8-

InterlockedExchangeAcquire

InterlockedExchangeAcquire64-

InterlockedExchangeAdd-

InterlockedExchangeAdd64-

InterlockedExchangeAddAcquire

">InterlockedExchangeAddAcquire64

InterlockedExchangeAddNoFence-

InterlockedExchangeAddNoFence64

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

InterlockedExchangeAddRelease64-

InterlockedExchangeNoFence-

InterlockedExchangeNoFence64-

InterlockedExchangePointer-

InterlockedExchangePointerAcquire-

InterlockedExchangePointerNoFence-

InterlockedExchangeSubtract-

Synchronisierungsfunktionen