InterlockedExchange16 函数 (winnt.h)

将 16 位变量设置为指定值作为原子操作。

若要对 32 位变量进行操作,请使用 InterlockedExchange 函数。

若要对 64 位变量进行操作,请使用 InterlockedExchange64 函数。

语法

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

参数

[in, out] Destination

指向要交换的值的指针。 该函数将此变量设置为 ExChange,并返回其以前的值。

[in] ExChange

要与目标指向的值交换的值。

返回值

该函数返回 Destination 参数的初始值。

言论

联锁函数提供了一种简单的机制,用于同步对多个线程共享的变量的访问。 对于对其他互锁函数的调用,此函数是原子的。

此函数尽可能使用编译器内部函数实现。 有关详细信息,请参阅 WinBase.h 头文件和 _InterlockedExchange16

此函数生成完整的内存屏障(或围栏),以确保按顺序完成内存操作。

基于 Itanium 的系统:对于性能关键型应用程序,请改用 InterlockedExchangeAcquire64

注意 基于 Windows RT 的系统支持此函数。
 

要求

要求 价值
最低支持的客户端 Windows Vista [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2003 [桌面应用 |UWP 应用]
目标平台 窗户
标头 winnt.h (包括 Windows.h)

另请参阅

互锁变量访问

InterlockedCompareExchange

InterlockedExchange

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

同步函数