C# Class System.Threading.Tasks.Schedulers.ConcurrentExclusiveInterleave

Mostrar archivo Open project: bingyang001/disruptor-net-3.3.0-alpha Class Usage Examples

Private Properties

Property Type Description
ConcurrentExclusiveInterleaveProcessor void
ExecuteConcurrentTask void
GetConcurrentTasksUntilExclusiveExists IEnumerable
GetExclusiveTasks IEnumerable
NotifyOfNewWork void

Public Methods

Method Description
ConcurrentExclusiveInterleave ( ) : System.Collections.Generic

Initialies the ConcurrentExclusiveInterleave.

ConcurrentExclusiveInterleave ( TaskScheduler targetScheduler ) : System.Collections.Generic

Initialies the ConcurrentExclusiveInterleave.

ConcurrentExclusiveInterleave ( TaskScheduler targetScheduler, bool exclusiveProcessingIncludesChildren ) : System.Collections.Generic

Initialies the ConcurrentExclusiveInterleave.

ConcurrentExclusiveInterleave ( bool exclusiveProcessingIncludesChildren ) : System.Collections.Generic

Initialies the ConcurrentExclusiveInterleave.

Private Methods

Method Description
ConcurrentExclusiveInterleaveProcessor ( ) : void

The body of the async processor to be run in a Task. Only one should be running at a time.

This has been separated out into its own method to improve the Parallel Tasks window experience.

ExecuteConcurrentTask ( Task task ) : void

Runs a concurrent task.

This has been separated out into its own method to improve the Parallel Tasks window experience.

GetConcurrentTasksUntilExclusiveExists ( ) : IEnumerable

Gets an enumerable that yields waiting concurrent tasks one at a time until either there are no more concurrent tasks or there are any exclusive tasks.

GetExclusiveTasks ( ) : IEnumerable

Gets an enumerable that yields all of the exclusive tasks one at a time.

NotifyOfNewWork ( ) : void

Notifies the interleave that new work has arrived to be processed.

Must only be called while holding the lock.

Method Details

ConcurrentExclusiveInterleave() public method

Initialies the ConcurrentExclusiveInterleave.
public ConcurrentExclusiveInterleave ( ) : System.Collections.Generic
return System.Collections.Generic

ConcurrentExclusiveInterleave() public method

Initialies the ConcurrentExclusiveInterleave.
public ConcurrentExclusiveInterleave ( TaskScheduler targetScheduler ) : System.Collections.Generic
targetScheduler TaskScheduler The target scheduler on which this interleave should execute.
return System.Collections.Generic

ConcurrentExclusiveInterleave() public method

Initialies the ConcurrentExclusiveInterleave.
public ConcurrentExclusiveInterleave ( TaskScheduler targetScheduler, bool exclusiveProcessingIncludesChildren ) : System.Collections.Generic
targetScheduler TaskScheduler The target scheduler on which this interleave should execute.
exclusiveProcessingIncludesChildren bool Whether the exclusive processing of a task should include all of its children as well.
return System.Collections.Generic

ConcurrentExclusiveInterleave() public method

Initialies the ConcurrentExclusiveInterleave.
public ConcurrentExclusiveInterleave ( bool exclusiveProcessingIncludesChildren ) : System.Collections.Generic
exclusiveProcessingIncludesChildren bool Whether the exclusive processing of a task should include all of its children as well.
return System.Collections.Generic