InterlockedExchange, fonction (winnt.h)
Définit une variable 32 bits sur la valeur spécifiée en tant qu’opération atomique.
Pour fonctionner sur une variable de pointeur, utilisez la fonction InterlockedExchangePointer.
Pour fonctionner sur une variable 16 bits, utilisez la fonction InterlockedExchange16.
Pour fonctionner sur une variable 64 bits, utilisez la fonction InterlockedExchange64.
Syntaxe
LONG InterlockedExchange(
[in, out] LONG volatile *Target,
[in] LONG Value
);
Paramètres
[in, out] Target
Pointeur vers la valeur à échanger. La fonction définit cette variable sur Valeuret retourne sa valeur antérieure.
[in] Value
Valeur à échanger avec la valeur pointée par cible.
Valeur de retour
La fonction retourne la valeur initiale du paramètre cible
Remarques
Les fonctions interblocé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 interblocé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 _InterlockedExchange.
Cette fonction génère une barrière de mémoire complète (ou clôture) pour vous 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 InterlockedExchangeAcquire à la place.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | winnt.h (include Windows.h) |
bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |
Voir aussi
d’accès aux variables verrouillées
">InterlockedExchangeAddAcquire64
InterlockedExchangeAddNoFence64
<un href="/previous-versions/windows/desktop/legacy/ms683605(v=vs.85) ». InterlockedExchangeAddRelease
InterlockedExchangeAddRelease64
InterlockedExchangePointerAcquire