Partager via


Fonction InterlockedIncrement (winnt.h)

Incrémente (augmente d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique.

Pour fonctionner sur des valeurs 64 bits, utilisez la fonction InterlockedIncrement64 .

Syntaxe

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

Paramètres

[in, out] Addend

Pointeur vers la variable à incrémenter.

Valeur retournée

La fonction retourne la valeur incrémentée résultante.

Remarques

La variable pointée par le paramètre Addend doit être alignée sur une limite 32 bits ; dans le cas contraire, cette fonction se comportera de manière imprévisible sur les systèmes x86 multiprocesseurs et tous les systèmes autres que x86. Voir _aligned_malloc.

Les fonctions verrouillées fournissent un mécanisme simple pour synchroniser l’accès à une variable partagée par plusieurs threads. Cette fonction est atomique par rapport aux appels à d’autres fonctions verrouillées.

Cette fonction est implémentée à l’aide d’une intrinsèque du compilateur dans la mesure du possible. Pour plus d’informations, consultez le fichier d’en-tête WinBase.h et _InterlockedIncrement.

Cette fonction génère une barrière de mémoire complète (ou clôture) pour s’assurer que les opérations de mémoire sont effectuées dans l’ordre.

Systèmes itanium : Pour les applications critiques en matière de performances, utilisez plutôt InterlockedIncrementAcquire ou InterlockedIncrementRelease .

Note Cette fonction est prise en charge sur les systèmes Windows RT.
 

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winnt.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Accès aux variables verrouillées

InterlockedDecrement

InterlockedIncrement16

InterlockedIncrement16Acquire

InterlockedIncrement16NoFence

InterlockedIncrement16Release

InterlockedIncrement64

InterlockedIncrementAcquire

InterlockedIncrementAcquire64

InterlockedIncrementNoFence

InterlockedIncrementNoFence64

InterlockedIncrementRelease

InterlockedIncrementRelease64

Fonctions de synchronisation