Share via


Funzione InterlockedExchange64 (winnt.h)

Imposta una variabile a 64 bit sul valore specificato come operazione atomica.

Per operare su una variabile a 16 bit, usare la funzione InterlockedExchange16 .

Per operare su una variabile a 32 bit, usare la funzione InterlockedExchange .

Sintassi

LONG64 InterlockedExchange64(
  [in, out] LONG64 volatile *Target,
  [in]      LONG64          Value
);

Parametri

[in, out] Target

Puntatore al valore da scambiare. La funzione imposta questa variabile su Value e restituisce il valore precedente.

[in] Value

Valore da scambiare con il valore puntato da Target.

Valore restituito

La funzione restituisce il valore iniziale del parametro Target .

Commenti

Le funzioni interlock forniscono un meccanismo semplice per la sincronizzazione dell'accesso a una variabile condivisa da più thread. Questa funzione è atomica rispetto alle chiamate ad altre funzioni interlock.

Questa funzione viene implementata usando un intrinseco del compilatore, se possibile. Per altre informazioni, vedere il file di intestazione WinBase.h e _InterlockedExchange64.

Questa funzione genera una barriera di memoria completa (o recinzione) per garantire che le operazioni di memoria vengano completate in ordine.

Sistemi basati su Itanium: Per le applicazioni critiche per le prestazioni, usare invece InterlockedExchangeAcquire64 .

Nota Questa funzione è supportata nei sistemi basati su Windows RT.
 

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winnt.h (includere Windows.h)

Vedi anche

Accesso variabile interlocked

InterlockedCompareExchange

InterlockedExchange

InterlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Funzioni di sincronizzazione