Compartir a través de


Función InterlockedExchange16 (winnt.h)

Establece una variable de 16 bits en el valor especificado como una operación atómica.

Para funcionar en una variable de 32 bits, use la función interlockedExchange .

Para funcionar en una variable de 64 bits, use la función InterlockedExchange64.

Sintaxis

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

Parámetros

[in, out] Destination

Puntero al valor que se va a intercambiar. La función establece esta variable en exChangey devuelve su valor anterior.

[in] ExChange

Valor al que se va a intercambiar con el valor al que apunta Destino.

Valor devuelto

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

Observaciones

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, vea el archivo de encabezado WinBase.h y _InterlockedExchange16.

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 interlockedExchangeAcquire64 en su lugar.

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

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista [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)

Consulte también

de acceso a variables interbloqueadas

interlockedCompareExchange

interlockedExchange

interlockedExchange16Acquire

interlockedExchange16NoFence

interlockedExchange64

interlockedExchange8

interlockedExchangeAcquire

interlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

interlockedExchangeNoFence64

InterlockedExchangePointer

interlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

interlockedExchangeSubtract

Funciones de sincronización de