Compartilhar via


Função InterlockedExchange64 (winnt.h)

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

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

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

Sintaxe

LONG64 InterlockedExchange64(
  [in, out] LONG64 volatile *Target,
  [in]      LONG64          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 _InterlockedExchange64.

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 InterlockedExchangeAcquire64.

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

Requisitos

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

Consulte também

de acesso de variável intertravada

InterlockedCompareExchange

InterlockedExchange

interlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Funções de sincronização