C#学习 - 关于Interlocked.CompareExchange()的用法
作者:互联网
https://blog.csdn.net/jianhui_wang/article/details/80485517
Interlocked.CompareExchange有一组函数
名称 | 说明 | |
---|---|---|
CompareExchange(Double, Double, Double) |
比较两个双精度浮点数是否相等,如果相等,则替换第一个值。 |
|
CompareExchange(Int32, Int32, Int32) |
比较两个 32 位有符号整数是否相等,如果相等,则替换第一个值。 |
|
CompareExchange(Int64, Int64, Int64) |
比较两个 64 位有符号整数是否相等,如果相等,则替换第一个值。 |
|
CompareExchange(IntPtr, IntPtr, IntPtr) |
比较两个平台特定的句柄或指针是否相等,如果相等,则替换第一个。 |
|
CompareExchange(Object, Object, Object) |
比较两个对象是否相等,如果相等,则替换第一个对象。 |
|
CompareExchange(Single, Single, Single) |
比较两个单精度浮点数是否相等,如果相等,则替换第一个值。 |
|
CompareExchange<T>(T, T, T) |
比较两个指定的引用类型的实例 T 是否相等,如果相等,则替换第一个。 |
现在以
public static int CompareExchange( ref int location1, int value, int comparand
)
为例说明其运算过程:
比较location1与comparand,如果不相等,什么都不做;如果location1与comparand相等,则用value替换location1的值。无论比较结果相等与否,返回值都是location1中原有的值。
用法举例:
- while (Interlocked.CompareExchange(ref _lastRead, index + 1, index) < index)
- {
- }
标签:index,相等,C#,替换,location1,int,CompareExchange,Interlocked 来源: https://www.cnblogs.com/kelelipeng/p/10685916.html