Partager via


InterlockedExchange8, fonction (winnt.h)

Définit une variable 8 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 32 bits, utilisez la fonction InterlockedExchange.

Pour fonctionner sur une variable 64 bits, utilisez la fonction InterlockedExchange64.

Syntaxe

CHAR InterlockedExchange8(
  [in, out] CHAR volatile *Target,
  [in]      CHAR          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 _InterlockedExchange8.

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.

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

Exigences

Exigence Valeur
client minimum pris en charge Windows 8 [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2012 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winnt.h (include Windows.h)

Voir aussi

d’accès aux variables verrouillées

InterlockedCompareExchange

interlockedExchange

InterlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

interlockedExchangeAdd

interlockedExchangeNoFence

InterlockedExchangeNoFence64

interlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

fonctions de synchronisation