C#原子操作(Interlocked.Decrement和Interlocked.Increment)

Posted yaosj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#原子操作(Interlocked.Decrement和Interlocked.Increment)相关的知识,希望对你有一定的参考价值。

一、概念

  在多线程环境中,不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。

二、类

  System.Threading.Interlocked 静态类

三、常用函数(其他的自己看吧)

1.public static int Decrement(ref int location); //以原子操作的形式递减指定变量的值并存储结果

相当于 lock(obj)i--;

2.public static int Increment(ref int location); //以原子操作的形式递增指定变量的值并存储结果

相当于 lock(obj)i++;

以上是关于C#原子操作(Interlocked.Decrement和Interlocked.Increment)的主要内容,如果未能解决你的问题,请参考以下文章

C# 多线程系列原子操作

如何在 C# 中进行原子写入/追加,或者如何使用 FILE_APPEND_DATA 标志打​​开文件?

是 C# 中的 bool 读/写原子

C# bool 是原子的,为啥 volatile 有效

c#基础之ADO.NET

比较结果的原子交换值