Funzione InterlockedCompareExchange16 (winnt.h)

Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori e scambi a 16 bit specificati con un altro valore a 16 bit in base al risultato del confronto.

Per operare su valori a 32 bit, usare la funzione InterlockedCompareExchange .

Per operare su valori a 64 bit, usare la funzione InterlockedCompareExchange64 .

Per operare su valori a 128 bit, usare la funzione InterlockedCompareExchange128 .

Sintassi

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

Parametri

[in, out] Destination

Puntatore al valore di destinazione.

[in] ExChange

Valore di scambio.

[in] Comperand

Valore da confrontare con Destination.

Valore restituito

La funzione restituisce il valore iniziale del parametro Destination .

Commenti

La funzione confronta il valore Di destinazione con il valore Comparand . Se il valore Di destinazione è uguale al valore Comparand , il valore di Exchange viene archiviato nell'indirizzo specificato da Destination. In caso contrario, non viene eseguita alcuna operazione.

I parametri per questa funzione devono essere allineati a un limite a 16 bit; in caso contrario, la funzione si comporta in modo imprevedibile nei sistemi x86 multiprocessore e in tutti i sistemi non x86. Vedere _aligned_malloc.

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

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

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

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winnt.h (includere Windows.h)

Vedi anche

Accesso variabile interlocked

InterlockedCompare64Exchange128

InterlockedCompareExchange

InterlockedCompareExchange128

InterlockedCompareExchange16Acquire

InterlockedCompareExchange16NoFence

InterlockedCompareExchange16Release

InterlockedCompareExchange64

InterlockedCompareExchangeAcquire

InterlockedCompareExchangeAcquire64

InterlockedCompareExchangeNoFence

InterlockedCompareExchangeNoFence64

InterlockedCompareExchangePointer

InterlockedCompareExchangePointerAcquire

InterlockedCompareExchangePointerNoFence

InterlockedCompareExchangePointerRelease

InterlockedCompareExchangeRelease

InterlockedCompareExchangeRelease64

Funzioni di sincronizzazione