0 out of 1 rated this helpful Rate this topic

SynchronizationContext Class

Provides the basic functionality for propagating a synchronization context in various synchronization models.

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags = SecurityPermissionFlag.NoFlags|SecurityPermissionFlag.ControlEvidence|SecurityPermissionFlag.ControlPolicy)]
public class SynchronizationContext

The SynchronizationContext type exposes the following members.

  Name Description
Public method SynchronizationContext Creates a new instance of the SynchronizationContext class.
Top
  Name Description
Public property Static member Supported by Portable Class Library Current Gets the synchronization context for the current thread.
Top
  Name Description
Public method Supported by Portable Class Library CreateCopy When overridden in a derived class, creates a copy of the synchronization context.
Public method Supported by Portable Class Library Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Supported by Portable Class Library Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Supported by Portable Class Library GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method Supported by Portable Class Library GetType Gets the Type of the current instance. (Inherited from Object.)
Public method IsWaitNotificationRequired Determines if wait notification is required.
Protected method Supported by Portable Class Library MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Supported by Portable Class Library OperationCompleted When overridden in a derived class, responds to the notification that an operation has completed.
Public method Supported by Portable Class Library OperationStarted When overridden in a derived class, responds to the notification that an operation has started.
Public method Supported by Portable Class Library Post When overridden in a derived class, dispatches an asynchronous message to a synchronization context.
Public method Supported by Portable Class Library Send When overridden in a derived class, dispatches a synchronous message to a synchronization context.
Public method Static member SetSynchronizationContext Sets the current synchronization context.
Protected method SetWaitNotificationRequired Sets notification that wait notification is required and prepares the callback method so it can be called more reliably when a wait occurs.
Public method Supported by Portable Class Library ToString Returns a string that represents the current object. (Inherited from Object.)
Public method Wait Waits for any or all the elements in the specified array to receive a signal.
Protected method Static member WaitHelper Helper function that waits for any or all the elements in the specified array to receive a signal.
Top

The SynchronizationContext class is a base class that provides a free-threaded context with no synchronization.

The purpose of the synchronization model implemented by this class is to allow the internal asynchronous/synchronization operations of the common language runtime to behave properly with different synchronization models. This model also simplifies some of the requirements that managed applications have had to follow in order to work correctly under different synchronization environments.

Providers of synchronization models can extend this class and provide their own implementations for these methods. 

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library
  • SecurityAction.InheritanceDemand  

    Inheritors must have SecurityPermissionFlag.ControlPolicy and SecurityPermissionFlag.ControlEvidence.

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(2000 characters remaining)
Community Content Add
Annotations FAQ