如果Interlocked.Increment是原子的,为什么我应该使用++代替?

Jad*_*ias 1 .net interlocked-increment

我认为这种原子操作比快++.我只看到有利的优势Interlocked.Increment.它的不足之处是什么?

jle*_*lew 11

原子意味着它是线程安全的(即一个线程不可能读取值而另一个线程正在更改它.)由于需要使用线程同步机制,这使得它更慢,而不是更快.如果你不关心线程安全,你想使用++. 以下是关于++运算符在不同上下文中的相对性能的一些讨论.