Fonction InterlockedExchangeAdd (winnt.h)
Effectue une addition atomique de deux valeurs 32 bits.
Pour fonctionner sur des valeurs 64 bits, utilisez la fonction InterlockedExchangeAdd64 .
Syntaxe
LONG InterlockedExchangeAdd(
[in, out] LONG volatile *Addend,
[in] LONG Value
);
Paramètres
[in, out] Addend
Pointeur vers une variable. La valeur de cette variable sera remplacée par le résultat de l’opération.
[in] Value
Valeur à ajouter à la variable pointée vers le paramètre Addend .
Valeur retournée
La fonction retourne la valeur initiale du paramètre Addend .
Remarques
La fonction effectue un ajout atomique de Value à la valeur pointée par Addend. Le résultat est stocké dans l’adresse spécifiée par Addend. La fonction retourne la valeur initiale de la variable pointée vers addend.
Les variables de cette fonction doivent être alignées sur une limite 32 bits ; sinon, cette fonction se comportera de manière imprévisible sur les systèmes multiprocesseurs x86 et tous les systèmes non 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 _InterlockedExchangeAdd
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 InterlockedExchangeAddAcquire .
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
InterlockedExchangeAddAcquire64
InterlockedExchangeAddNoFence64
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour