Compartir a través de


Función InterlockedExchangeAdd (winnt.h)

Realiza una adición atómica de dos valores de 32 bits.

Para funcionar en valores de 64 bits, use la función InterlockedExchangeAdd64.

Sintaxis

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

Parámetros

[in, out] Addend

Puntero a una variable. El valor de esta variable se reemplazará por el resultado de la operación.

[in] Value

Valor que se va a agregar a la variable a la que apunta el parámetro Addend.

Valor devuelto

La función devuelve el valor inicial del parámetro Addend.

Observaciones

La función realiza una adición atómica de Value al valor al que apunta Addend. El resultado se almacena en la dirección especificada por Addend. La función devuelve el valor inicial de la variable a la que apunta Addend.

Las variables de esta función deben alinearse en un límite de 32 bits; De lo contrario, esta función se comportará de forma imprevisible en sistemas x86 multiprocesador y en cualquier sistema que no sea x86. Consulte _aligned_malloc.

Las funciones interbloqueadas proporcionan un mecanismo sencillo para sincronizar el acceso a una variable compartida por varios subprocesos. Esta función es atómica con respecto a las llamadas a otras funciones interbloqueadas.

Esta función se implementa mediante un intrínseco del compilador siempre que sea posible. Para obtener más información, consulte el archivo de encabezado WinBase.h y _InterlockedExchangeAdd

Esta función genera una barrera de memoria completa (o barrera) para asegurarse de que las operaciones de memoria se completan en orden.

sistemas basados en Itanium: Para aplicaciones críticas para el rendimiento, use interlockedExchangeAddAcquire en su lugar.

Nota Esta función es compatible con sistemas basados en Windows RT.
 

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de winnt.h (incluya Windows.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

de acceso a variables interbloqueadas

interlockedCompareExchange

interlockedExchange

interlockedExchangeAdd64

interlockedExchangeAddAcquire

">InterlockedExchangeAddAcquire64

interlockedExchangeAddNoFence

interlockedExchangeAddNoFence64

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

interlockedExchangeAddRelease64

interlockedExchangeSubtract

Funciones de sincronización de