摘要:
在大多数计算机上,增加变量操作不是一个原子操作,需要执行下列步骤: 1. 将实例变量中的值加载到寄存器中。2. 增加或减少该值。3. 在实例变量中存储该值。在多线程环境下,线程会在执行完前两个步骤后被抢先。然后由另一个线程执行所有三个步骤,当第一个线程重新开始执行时,它覆盖实例变量中的值,造成第二个线程执行增减操作的结果丢失。Interlocked可以为多个线程共享的变量提供原子操作。Interlocked.Increment:以原子操作的形式递增指定变量的值并存储结果。Interlocked.Decrement以原子操作的形式递减指定变量的值并存储结果。Interlocked.Add以原子操 阅读全文