Share via


Fonction InterlockedExchange16 (winnt.h)

Définit une variable 16 bits sur la valeur spécifiée en tant qu’opération atomique.

Pour fonctionner sur une variable 32 bits, utilisez la fonction InterlockedExchange .

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

Syntaxe

SHORT InterlockedExchange16(
  [in, out] SHORT volatile *Destination,
  [in]      SHORT          ExChange
);

Paramètres

[in, out] Destination

Pointeur vers la valeur à échanger. La fonction définit cette variable sur ExChange et retourne sa valeur précédente.

[in] ExChange

Valeur à échanger avec la valeur pointée par Destination.

Valeur retournée

La fonction retourne la valeur initiale du paramètre Destination .

Remarques

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

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

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [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)

Voir aussi

Accès variable verrouillé

InterlockedCompareExchange

InterlockedExchange

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Fonctions de synchronisation