System.Threading.Interlocked
namespace System.Threading
{
public static class Interlocked
{
public static int Add(ref int location1, int value);
public static long Add(ref long location1, long value);
public static double CompareExchange(ref double location1, double value, double comparand);
public static int CompareExchange(ref int location1, int value, int comparand);
public static long CompareExchange(ref long location1, long value, long comparand);
public static IntPtr CompareExchange(ref IntPtr location1, IntPtr value, IntPtr comparand);
public static object CompareExchange(ref object location1, object value, object comparand);
public static float CompareExchange(ref float location1, float value, float comparand);
public static T CompareExchange<T>(ref T location1, T value, T comparand) where T : class;
public static int Decrement(ref int location);
public static long Decrement(ref long location);
public static double Exchange(ref double location1, double value);
public static int Exchange(ref int location1, int value);
public static long Exchange(ref long location1, long value);
public static IntPtr Exchange(ref IntPtr location1, IntPtr value);
public static object Exchange(ref object location1, object value);
public static float Exchange(ref float location1, float value);
public static T Exchange<T>(ref T location1, T value) where T : class;
public static int Increment(ref int location);
public static long Increment(ref long location);
public static void MemoryBarrier();
public static long Read(ref long location);
}
}