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.

Retornar valor

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

Comentários

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

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 .

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winnt.h (inclua Windows.h)

Confira também

Acesso à variável intertravada

Interlockedcompareexchange

InterlockedExchange

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

Interlockedexchangeadd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Funções de sincronização