LONG
InterlockedCompareExchange(
IN OUT PLONG Destination,
IN LONG Exchange,
IN LONG Comparand
);
Destination
指向一个要被比较的值,这是一个指针
Exchange
如果Destion与Comapradn相等,那么Destination的值等于此值
Comparand
与Destionation比较的值
Return Value
返回原来Desination指向的值
注:
如果Destion与Comparand相等,那么就把Destion置为Exchange,其他情况,Destination不变。反回的是原来Destation指向的值,这点一定要注意。
此函数线程安全,为原子操作,用在多线程中。
样例代码:
#include <iostream>
#include <windows.h>
int main()
{
using std::cout;
using std::endl;
unsigned int des = 3;
unsigned int a,b;
a = 2, b = 3;
cout << ::InterlockedCompareExchange(&des, a, b) << endl;
cout << des << endl;
cout << a << endl;
cout << b << endl;
return 0;
}