Función InterlockedExchange (winnt.h)
Establece una variable de 32 bits en el valor especificado como una operación atómica.
Para operar en una variable de puntero, use la función interlockedExchangePointer
Para operar en una variable de 16 bits, use la función InterlockedExchange16.
Para funcionar en una variable de 64 bits, use la función InterlockedExchange64.
Sintaxis
LONG InterlockedExchange(
[in, out] LONG volatile *Target,
[in] LONG Value
);
Parámetros
[in, out] Target
Puntero al valor que se va a intercambiar. La función establece esta variable en Valory devuelve su valor anterior.
[in] Value
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
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 _InterlockedExchange.
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 interlockedExchangeAcquire en su lugar.
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
">InterlockedExchangeAddAcquire64
interlockedExchangeAddNoFence64
<un href="/previous-versions/windows/desktop/legacy/ms683605(v=vs.85)". InterlockedExchangeAddRelease
interlockedExchangeAddRelease64
interlockedExchangePointerAcquire