<PackageReference Include="NETStandard.Library" Version="2.0.0-preview2-25401-01" />

System.Threading.Interlocked

public static class 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); } }