# System.Threading

``` diff
 namespace System.Threading {
     public class AbandonedMutexException : SystemException {
-        protected AbandonedMutexException(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        protected AbandonedMutexException(SerializationInfo info, StreamingContext context);
     }
     public class BarrierPostPhaseException : Exception {
-        protected BarrierPostPhaseException(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        protected BarrierPostPhaseException(SerializationInfo info, StreamingContext context);
     }
     public class CancellationTokenSource : IDisposable {
+        public CancellationTokenSource(TimeSpan delay, TimeProvider timeProvider);
     }
     public sealed class CompressedStack : ISerializable {
-        public void GetObjectData(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        public void GetObjectData(SerializationInfo info, StreamingContext context);
     }
     public sealed class ExecutionContext : IDisposable, ISerializable {
-        public void GetObjectData(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        public void GetObjectData(SerializationInfo info, StreamingContext context);
     }
+    public interface ITimer : IAsyncDisposable, IDisposable {
+        bool Change(TimeSpan dueTime, TimeSpan period);
+    }
     public class LockRecursionException : Exception {
-        protected LockRecursionException(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        protected LockRecursionException(SerializationInfo info, StreamingContext context);
     }
     public sealed class PeriodicTimer : IDisposable {
+        public PeriodicTimer(TimeSpan period, TimeProvider timeProvider);
     }
     public class SemaphoreFullException : SystemException {
-        protected SemaphoreFullException(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        protected SemaphoreFullException(SerializationInfo info, StreamingContext context);
     }
     public class SynchronizationLockException : SystemException {
-        protected SynchronizationLockException(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        protected SynchronizationLockException(SerializationInfo info, StreamingContext context);
     }
     public class ThreadInterruptedException : SystemException {
-        protected ThreadInterruptedException(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        protected ThreadInterruptedException(SerializationInfo info, StreamingContext context);
     }
     public class ThreadStateException : SystemException {
-        protected ThreadStateException(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        protected ThreadStateException(SerializationInfo info, StreamingContext context);
     }
-    public sealed class Timer : MarshalByRefObject, IAsyncDisposable, IDisposable
+    public sealed class Timer : MarshalByRefObject, IAsyncDisposable, IDisposable, ITimer
     public class WaitHandleCannotBeOpenedException : ApplicationException {
-        protected WaitHandleCannotBeOpenedException(SerializationInfo info, StreamingContext context);
+        [EditorBrowsableAttribute(EditorBrowsableState.Never)]
+        [ObsoleteAttribute("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
+        protected WaitHandleCannotBeOpenedException(SerializationInfo info, StreamingContext context);
     }
 }
```

