Condividi tramite


Funzione InterlockedExchange (winnt.h)

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

Per operare su una variabile puntatore, utilizzare la funzione InterlockedExchangePointer.

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

Per operare su una variabile a 64 bit, usare la funzione interlockedExchange64 .

Sintassi

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

Parametri

[in, out] Target

Puntatore al valore da scambiare. La funzione imposta questa variabile su Valuee ne restituisce il valore precedente.

[in] Value

Valore da scambiare con il valore a cui punta Target.

Valore restituito

La funzione restituisce il valore iniziale del parametro target .

Osservazioni

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

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

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

sistemi basati su Itanium: Per le applicazioni critiche per le prestazioni, usare InterlockedExchangeAcquire.

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

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [app desktop | App UWP]
server minimo supportato Windows Server 2003 [app desktop | App UWP]
piattaforma di destinazione Finestre
intestazione winnt.h (include Windows.h)
libreria Kernel32.lib
dll Kernel32.dll

Vedere anche

accesso a variabili interlocked

InterlockedCompareExchange

interlockedExchange

InterlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

interlockedExchangeAdd64

InterlockedExchangeAddAcquire

">InterlockedExchangeAddAcquire64

InterlockedExchangeAddNoFence

InterlockedExchangeAddNoFence64

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

InterlockedExchangeAddRelease64

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

funzioni di sincronizzazione