C# Class AdvUtils.LimitedConcurrencyLevelTaskScheduler

Provides a task scheduler that ensures a maximum concurrency level while running on top of the ThreadPool.
Inheritance: System.Threading.Tasks.TaskScheduler
Exibir arquivo Open project: zhongkaifu/AdvUtils Class Usage Examples

Public Methods

Method Description
LimitedConcurrencyLevelTaskScheduler ( int maxDegreeOfParallelism ) : System

Initializes an instance of the LimitedConcurrencyLevelTaskScheduler class with the specified degree of parallelism.

Protected Methods

Method Description
GetScheduledTasks ( ) : IEnumerable

Gets an enumerable of the tasks currently scheduled on this scheduler.

QueueTask ( Task task ) : void

Queues a task to the scheduler.

TryDequeue ( Task task ) : bool

Attempts to remove a previously scheduled task from the scheduler.

TryExecuteTaskInline ( Task task, bool taskWasPreviouslyQueued ) : bool

Attempts to execute the specified task on the current thread.

Private Methods

Method Description
NotifyThreadPoolOfPendingWork ( ) : void

Informs the ThreadPool that there's work to be executed for this scheduler.

Method Details

GetScheduledTasks() protected final method

Gets an enumerable of the tasks currently scheduled on this scheduler.
protected final GetScheduledTasks ( ) : IEnumerable
return IEnumerable

LimitedConcurrencyLevelTaskScheduler() public method

Initializes an instance of the LimitedConcurrencyLevelTaskScheduler class with the specified degree of parallelism.
public LimitedConcurrencyLevelTaskScheduler ( int maxDegreeOfParallelism ) : System
maxDegreeOfParallelism int The maximum degree of parallelism provided by this scheduler.
return System

QueueTask() protected final method

Queues a task to the scheduler.
protected final QueueTask ( Task task ) : void
task Task The task to be queued.
return void

TryDequeue() protected final method

Attempts to remove a previously scheduled task from the scheduler.
protected final TryDequeue ( Task task ) : bool
task Task The task to be removed.
return bool

TryExecuteTaskInline() protected final method

Attempts to execute the specified task on the current thread.
protected final TryExecuteTaskInline ( Task task, bool taskWasPreviouslyQueued ) : bool
task Task The task to be executed.
taskWasPreviouslyQueued bool
return bool