Share via


InterlockedExchange8-Funktion (winnt.h)

Legt eine 8-Bit-Variable als atomischen Vorgang auf den angegebenen Wert fest.

Verwenden Sie die Funktion InterlockedExchangePointer , um eine Zeigervariable zu verwenden.

Um mit einer 16-Bit-Variablen zu arbeiten, verwenden Sie die Funktion InterlockedExchange16 .

Um mit einer 32-Bit-Variablen zu arbeiten, verwenden Sie die Funktion InterlockedExchange .

Verwenden Sie zum Arbeiten mit einer 64-Bit-Variablen die Funktion InterlockedExchange64 .

Syntax

CHAR InterlockedExchange8(
  [in, out] CHAR volatile *Target,
  [in]      CHAR          Value
);

Parameter

[in, out] Target

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

[in] Value

Der Wert, der mit dem Wert ausgetauscht werden soll, auf den target verweist.

Rückgabewert

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

Hinweise

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

Diese Funktion wird nach Möglichkeit mithilfe eines intrinsischen Compilers implementiert. Weitere Informationen finden Sie in der WinBase.h-Headerdatei und _InterlockedExchange8.

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

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winnt.h (windows.h einschließen)

Weitere Informationen

Ineinandergreifen des Variablenzugriffs

InterlockedCompareExchange

InterlockedExchange

InterlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Synchronisierungsfunktionen