Condividi tramite


Funzione InterlockedExchangeAdd64 (winnt.h)

Esegue un'aggiunta atomica di due valori a 64 bit.

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

Sintassi

LONG64 InterlockedExchangeAdd64(
  [in, out] LONG64 volatile *Addend,
  [in]      LONG64          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.

Osservazioni

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 punta Addend.

Le variabili per questa funzione devono essere allineate su un limite a 64 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 interlock.

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

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 invece ">InterlockedExchangeAddAcquire64.

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

Fabbisogno

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

Vedere anche

accesso a variabili interlocked

InterlockedCompareExchange

interlockedExchange

InterlockedExchangeAdd

InterlockedExchangeAddAcquire

">InterlockedExchangeAddAcquire64

InterlockedExchangeAddNoFence

InterlockedExchangeAddNoFence64

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

InterlockedExchangeAddRelease64

InterlockedExchangeSubtract

funzioni di sincronizzazione