InterlockedExchangeAdd()函数是解决互斥的一个简单方法,与信号量,互斥作用相当。
原型如下:
- LONG InterlockedExchangeAdd(PLONG Addend, LONG Value);
LONG InterlockedExchangeAdd(PLONG Addend, LONG Value);
该函数可实现对一个long型变量的相加操作。
第一个参数 是传入的一个长整形变量
第二个参数 是每次操作递增的量值
例子:
- long g_iData = 0; // 全局变量
- // 线程体
- unsigned int __stdcall ThreadFunc(void* param)
- {
- InterlockedExchangeAdd(&g_iData, 2);
- return 0;
- }
long g_iData = 0; // 全局变量 // 线程体 unsigned int __stdcall ThreadFunc(void* param) { InterlockedExchangeAdd(&g_iData, 2); return 0; }
执行完 InterlockedExchangeAdd
g_iData 增加2