# System.Threading

``` diff
 namespace System.Threading {
     public static class Interlocked {
-        public static long Read(ref long location);
+        public static long Read(ref readonly long location);
-        [CLSCompliantAttribute(false)]
-        public static ulong Read(ref ulong location);
+        [CLSCompliantAttribute(false)]
+        public static ulong Read(ref readonly ulong location);
     }
     public static class Volatile {
-        public static bool Read(ref bool location);
+        public static bool Read(ref readonly bool location);
-        public static byte Read(ref byte location);
+        public static byte Read(ref readonly byte location);
-        public static double Read(ref double location);
+        public static double Read(ref readonly double location);
-        public static short Read(ref short location);
+        public static short Read(ref readonly short location);
-        public static int Read(ref int location);
+        public static int Read(ref readonly int location);
-        public static long Read(ref long location);
+        public static long Read(ref readonly long location);
-        public static IntPtr Read(ref IntPtr location);
+        public static IntPtr Read(ref readonly IntPtr location);
-        [CLSCompliantAttribute(false)]
-        public static sbyte Read(ref sbyte location);
+        [CLSCompliantAttribute(false)]
+        public static sbyte Read(ref readonly sbyte location);
-        public static float Read(ref float location);
+        public static float Read(ref readonly float location);
-        [CLSCompliantAttribute(false)]
-        public static ushort Read(ref ushort location);
+        [CLSCompliantAttribute(false)]
+        public static ushort Read(ref readonly ushort location);
-        [CLSCompliantAttribute(false)]
-        public static uint Read(ref uint location);
+        [CLSCompliantAttribute(false)]
+        public static uint Read(ref readonly uint location);
-        [CLSCompliantAttribute(false)]
-        public static ulong Read(ref ulong location);
+        [CLSCompliantAttribute(false)]
+        public static ulong Read(ref readonly ulong location);
-        [CLSCompliantAttribute(false)]
-        public static UIntPtr Read(ref UIntPtr location);
+        [CLSCompliantAttribute(false)]
+        public static UIntPtr Read(ref readonly UIntPtr location);
-        [return: NotNullIfNotNullAttribute("location")]
-        public static T Read<T>([NotNullIfNotNullAttribute("location")] ref T location) where T : class?;
+        [return: NotNullIfNotNullAttribute("location")]
+        public static T Read<T>([NotNullIfNotNullAttribute("location"), RequiresLocationAttribute] ref T location) where T : class?;
     }
 }
```

