Compartilhar via


Função InterlockedExchange16 (winnt.h)

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

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

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

Sintaxe

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

Parâmetros

[in, out] Destination

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

[in] ExChange

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

Valor de retorno

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

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

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

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Funções de sincronização