Compartilhar via


Função InterlockedDecrement (winnt.h)

Diminui (diminui em um) o valor da variável de 32 bits especificada como uma operação atômica.

Para operar em valores de 64 bits, use a função InterlockedDecrement64 .

Sintaxe

LONG InterlockedDecrement(
  [in, out] LONG volatile *Addend
);

Parâmetros

[in, out] Addend

Um ponteiro para a variável a ser decrementada.

Retornar valor

A função retorna o valor decrementado resultante.

Comentários

A variável apontada pelo parâmetro Addend deve ser alinhada em um limite de 32 bits; caso contrário, essa função se comportará de forma imprevisível em sistemas x86 multiprocessadores e em sistemas não x86. Confira _aligned_malloc.

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

Essa função gera uma barreira de memória completa (ou limite) 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 InterlockedDecrementAcquire ou InterlockedDecrementRelease .

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [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)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Acesso a variáveis interligadas

InterlockedDecrement16

InterlockedDecrement16Acquire

InterlockedDecrement16NoFence

InterlockedDecrement16Release

InterlockedDecrement64

InterlockedDecrementAcquire

InterlockedDecrementAcquire64

InterlockedDecrementNoFence

InterlockedDecrementNoFence64

InterlockedDecrementRelease

InterlockedDecrementRelease64

Interlockedincrement

Funções de sincronização