1.public static class Interlocked
2.Add(Int32, Int32)
对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。
Add(Int64, Int64)
对两个 64 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。
3.CompareExchange<T>(T, T, T)
比较两个指定的引用类型的实例 T 是否相等,如果相等,则替换第一个。
eg.Interlocked.CompareExchange<SomeState>(ref someState, newState, null);
4.Decrement(Int32)
以原子操作的形式递减指定变量的值并存储结果。
Decrement(Int64)
以原子操作的形式递减指定变量的值并存储结果。
eg.int i = 0;
Interlocked.Decrement(ref i);
5.Increment(Int32)
以原子操作的形式递增指定变量的值并存储结果。
Increment(Int64)
以原子操作的形式递增指定变量的值并存储结果。
eg.int i = 0;
Interlocked.Increment(ref i);