如何为double执行原子读取?

时间:2014-07-14 03:09:06

标签: c# atomic interlocked

为什么没有Interlocked.Read函数可用于double,因为Interlocked.Exchange和Interlocked.CompareExchange方法可用于double,它可以原子地执行更复杂的函数。使用此类方法以原子方式读取double值(而不是使用Interlocked.Read)将为简单的读取操作增加开销。

你能否建议一种更简单的方法来读取双原子,而另一个线程正在使用Interlocked.Exchange方法更新此double。

1 个答案:

答案 0 :(得分:0)

Interlocked.Read代表long is implemented like this

return Interlocked.CompareExchange(ref location,0,0);

这意味着使用CompareExchange而不是Read不会增加开销,不是longdouble的开销。