Interlocked.Exchange,但不适用于布尔人?

时间:2008-08-21 12:24:23

标签: .net multithreading

布尔值是否有Interlocked.Exchange的等价物?

例如返回先前值并且不需要锁定的值的原子交换?

1 个答案:

答案 0 :(得分:8)

没有;使用整数而不是布尔值。

原则上可以编写这样的东西(cmpxchg,底层处理器指令,可以在x86,8,16,32,64和128位操作数上的8,16,32和64位操作数上运行) x64),但实际上大多数API都坚持使用指针和双指针(x86上的32位和64位,x64上的64位和128位)操作数,因为它们只是你真正需要的。