线程操作
Interlocked
为多线程提供原子操作。
方法:
/****************************** * Add * Implemented: int * long *****************************/ //对两个 32|64 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。返回结果:location1的新值。 public static int Add(ref int location1, int value) public static long Add(ref long location1, long value)
/****************************** * Increment * Implemented: int * long *****************************/ // 以原子操作的形式递增|递减指定变量的值。返回结果:location1的新值。 public static int Increment(ref int location) public static long Increment(ref long location) /****************************** * Decrement * Implemented: int * long *****************************/ // 以原子操作的形式递增|递减指定变量的值。返回结果:location1的新值。 public static int Decrement(ref int location)
/****************************** * CompareExchange * Implemented: int * long * float * double * Object * IntPtr *****************************/ //比较指定的location1和comparand是否相等,如果相等,则将location1值设置为value。返回结果:location1 的原始值。 public static extern int CompareExchange(ref int location1, int value, int comparand); public static extern Object CompareExchange(ref Object location1, Object value, Object comparand); public static extern IntPtr CompareExchange(ref IntPtr location1, IntPtr value, IntPtr comparand); private static extern void _CompareExchange(TypedReference location1, TypedReference value, Object comparand);
/****************************** * Exchange * Implemented: int * long * float * double * Object * IntPtr *****************************/ // 以原子操作的形式,将location1的值设置为value,返回结果:location1 的原始值。 public static extern int Exchange(ref int location1, int value); public static extern Object Exchange(ref Object location1, Object value); public static extern IntPtr Exchange(ref IntPtr location1, IntPtr value);

浙公网安备 33010602011771号