TaskScheduler Class

Represents an object that handles the low-level work of queuing tasks onto threads.

Inheritance Hierarchy


Namespace:  System.Threading.Tasks
Assembly:  mscorlib (in mscorlib.dll)


<DebuggerDisplayAttribute("Id={Id}")> _
Public MustInherit Class TaskScheduler
public abstract class TaskScheduler

The TaskScheduler type exposes the following members.


  Name Description
Protected method TaskScheduler Initializes the TaskScheduler.



  Name Description
Public propertyStatic member Current Gets the TaskScheduler associated with the currently executing task.
Public propertyStatic member Default Gets the default TaskScheduler instance that is provided by the .NET Framework.
Public property Id Gets the unique ID for this TaskScheduler.
Public property MaximumConcurrencyLevel Indicates the maximum concurrency level this TaskScheduler is able to support.



  Name Description
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodStatic member FromCurrentSynchronizationContext Creates a TaskScheduler associated with the current System.Threading.SynchronizationContext.
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Protected method GetScheduledTasks Security Critical. For debugger support only, generates an enumerable of Task instances currently queued to the scheduler waiting to be executed.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method QueueTask Security Critical. Queues a Task to the scheduler.
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Protected method TryDequeue Security Critical. Attempts to dequeue a Task that was previously queued to this scheduler.
Protected method TryExecuteTask Security Critical. Attempts to execute the provided Task on this scheduler.
Protected method TryExecuteTaskInline Security Critical. Determines whether the provided Task can be executed synchronously in this call, and if it can, executes it.



  Name Description
Public eventStatic member UnobservedTaskException Occurs when a faulted Task's unobserved exception is about to trigger exception escalation policy, which, by default, would terminate the process.



TaskScheduler acts as the extension point for all pluggable scheduling logic. This includes mechanisms such as how to schedule a task for execution, and how scheduled tasks should be exposed to debuggers.

For more information and code examples, see Task Schedulers.

Several sample task schedulers are available on Code Gallery: Samples for Parallel Programming with the .NET Framework 4.

Version Information


Supported in: 5


For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Thread Safety

All members of the abstract TaskScheduler type are thread-safe and may be used from multiple threads concurrently.