C# Class Microsoft.WindowsAzure.Commands.Storage.Common.LimitedConcurrencyTaskScheduler

A task scheduler with limited concurrency.
Show file Open project: Azure/azure-powershell Class Usage Examples

Public Methods

Method Description
GetAvailableTaskId ( ) : long

Get available task id thread unsafe since it should only run in main thread

IsTaskCompleted ( long taskId ) : bool

Is the specified task completed

LimitedConcurrencyTaskScheduler ( int maxConcurrency, CancellationToken cancellationToken ) : System

Construct a limited concurrency task scheduler

RunTask ( Task>.Func taskGenerator ) : void

Run a task

WaitForComplete ( int millisecondsTimeout, CancellationToken cancellationToken ) : bool

Wait for all task completion

Protected Methods

Method Description
RunConcurrentTask ( long taskId, Task task ) : void

Run async task

Private Methods

Method Description
RunRemainingTask ( ) : void

Run the remaining task in the waiting queue

Method Details

GetAvailableTaskId() public method

Get available task id thread unsafe since it should only run in main thread
public GetAvailableTaskId ( ) : long
return long

IsTaskCompleted() public method

Is the specified task completed
public IsTaskCompleted ( long taskId ) : bool
taskId long Task id
return bool

LimitedConcurrencyTaskScheduler() public method

Construct a limited concurrency task scheduler
public LimitedConcurrencyTaskScheduler ( int maxConcurrency, CancellationToken cancellationToken ) : System
maxConcurrency int
cancellationToken System.Threading.CancellationToken
return System

RunConcurrentTask() protected method

Run async task
protected RunConcurrentTask ( long taskId, Task task ) : void
taskId long Task id
task Task Task operation
return void

RunTask() public method

Run a task
public RunTask ( Task>.Func taskGenerator ) : void
taskGenerator Task>.Func Task generator
return void

WaitForComplete() public method

Wait for all task completion
public WaitForComplete ( int millisecondsTimeout, CancellationToken cancellationToken ) : bool
millisecondsTimeout int Wait time out
cancellationToken System.Threading.CancellationToken Cancellation token
return bool