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 Value y devuelve su valor anterior.
[in] Value
Valor que se va a intercambiar con el valor al que apunta Target.
Valor devuelto
La función devuelve el valor inicial del parámetro Target .
Comentarios
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 cerca) para asegurarse de que las operaciones de memoria se completan en orden.
Sistemas basados en Itanium: En el caso de las aplicaciones críticas para el rendimiento, use InterlockedExchangeAcquire en su lugar.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | winnt.h (incluya Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |
Vea también
Acceso a variables interbloqueados
InterlockedExchangeAddAcquire64
InterlockedExchangeAddNoFence64
InterlockedExchangeAddRelease64
InterlockedExchangePointerAcquire