Condividi tramite


Funzione InterlockedDecrement (winnt.h)

Decrementa (diminuisce di uno) il valore della variabile a 32 bit specificata come operazione atomica.

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

Sintassi

LONG InterlockedDecrement(
  [in, out] LONG volatile *Addend
);

Parametri

[in, out] Addend

Puntatore alla variabile da decrementare.

Valore restituito

La funzione restituisce il valore decrementato risultante.

Commenti

La variabile a cui punta il parametro Addend deve essere allineata su un limite a 32 bit; in caso contrario, questa funzione si comporta in modo imprevedibile nei sistemi x86 multiprocessore e in tutti i sistemi non x86. Vedere _aligned_malloc.

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

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 InterlockedDecrementAcquire o InterlockedDecrementRelease .

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

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winnt.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Accesso a variabili interlocked

InterlockedDecrement16

InterlockedDecrement16Acquire

InterlockedDecrement16NoFence

InterlockedDecrement16Release

InterlockedDecrement64

InterlockedDecrementAcquire

InterlockedDecrementAcquire64

InterlockedDecrementNoFence

InterlockedDecrementNoFence64

InterlockedDecrementRelease

InterlockedDecrementRelease64

InterlockedIncrement

Funzioni di sincronizzazione