Condividi tramite


Funzione InterlockedExchange16 (winnt.h)

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

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

Per operare su una variabile a 64 bit, utilizzare la funzione InterlockedExchange64 .

Sintassi

SHORT InterlockedExchange16(
  [in, out] SHORT volatile *Destination,
  [in]      SHORT          ExChange
);

Parametri

[in, out] Destination

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

[in] ExChange

Valore da scambiare con il valore a cui punta Destination.

Valore restituito

La funzione restituisce il valore iniziale del parametro Destination .

Commenti

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

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

Questa funzione genera una barriera di memoria completa (o limite) per garantire che le operazioni di memoria vengano completate nell'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 (include Windows.h)

Vedi anche

Accesso a variabili interlocked

InterlockedCompareExchange

InterlockedExchange

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Funzioni di sincronizzazione