Funzione InterlockedExchangeAdd (winnt.h)
Esegue un'aggiunta atomica di due valori a 32 bit.
Per operare su valori a 64 bit, usare la funzione InterlockedExchangeAdd64 .
Sintassi
LONG InterlockedExchangeAdd(
[in, out] LONG volatile *Addend,
[in] LONG Value
);
Parametri
[in, out] Addend
Puntatore a una variabile. Il valore di questa variabile verrà sostituito con il risultato dell'operazione.
[in] Value
Valore da aggiungere alla variabile a cui punta il parametro Addend .
Valore restituito
La funzione restituisce il valore iniziale del parametro Addend .
Commenti
La funzione esegue un'aggiunta atomica di Value al valore a cui punta Addend. Il risultato viene archiviato nell'indirizzo specificato da Addend. La funzione restituisce il valore iniziale della variabile a cui fa riferimento Addend.
Le variabili per questa funzione devono essere allineate 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 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 _InterlockedExchangeAdd
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 InterlockedExchangeAddAcquire .
Requisiti
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 (includere Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
InterlockedExchangeAddAcquire64
InterlockedExchangeAddNoFence64
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per