Compartilhar via


Função InterlockedExchange (winnt.h)

Define uma variável de 32 bits para o valor especificado como uma operação atômica.

Para operar em uma variável de ponteiro, use a função InterlockedExchangePointer.

Para operar em uma variável de 16 bits, use a função InterlockedExchange16.

Para operar em uma variável de 64 bits, use a função InterlockedExchange64.

Sintaxe

LONG InterlockedExchange(
  [in, out] LONG volatile *Target,
  [in]      LONG          Value
);

Parâmetros

[in, out] Target

Um ponteiro para o valor a ser trocado. A função define essa variável como Valore retorna seu valor anterior.

[in] Value

O valor a ser trocado com o valor apontado por Target.

Valor de retorno

A função retorna o valor inicial do parâmetro Target.

Observações

As funções intertravadas fornecem um mecanismo simples para sincronizar o acesso a uma variável compartilhada por vários threads. Essa função é atômica em relação a chamadas para outras funções intertravadas.

Essa função é implementada usando um compilador intrínseco sempre que possível. Para obter mais informações, consulte o arquivo de cabeçalho WinBase.h e _InterlockedExchange.

Essa função gera uma barreira de memória completa (ou cerca) para garantir que as operações de memória sejam concluídas em ordem.

sistemas baseados em Itanium: Para aplicativos críticos ao desempenho, use InterlockedExchangeAcquire.

Observação Essa função tem suporte em sistemas baseados em RT do Windows.
 

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [aplicativos da área de trabalho | Aplicativos UWP]
servidor com suporte mínimo Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
cabeçalho winnt.h (inclua Windows.h)
biblioteca Kernel32.lib
de DLL Kernel32.dll

Consulte também

de acesso de variável intertravada

InterlockedCompareExchange

InterlockedExchange

interlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeAdd64

InterlockedExchangeAddAcquire

"> InterlockedExchangeAddAcquire64

InterlockedExchangeAddNoFence

InterlockedExchangeAddNoFence64

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

InterlockedExchangeAddRelease64

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Funções de sincronização