是否有等效的 Interlocked.Exchange 对于布尔值?

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

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top