IGLib  1.7.2
The IGLib base library EXTENDED - with other lilbraries and applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
IG.Test.LimitedConcurrencyLevelTaskScheduler Class Reference
+ Inheritance diagram for IG.Test.LimitedConcurrencyLevelTaskScheduler:
+ Collaboration diagram for IG.Test.LimitedConcurrencyLevelTaskScheduler:

Public Member Functions

 LimitedConcurrencyLevelTaskScheduler (int maxDegreeOfParallelism)
 

Protected Member Functions

sealed override void QueueTask (Task task)
 
sealed override bool TryExecuteTaskInline (Task task, bool taskWasPreviouslyQueued)
 
sealed override bool TryDequeue (Task task)
 
sealed override IEnumerable< Task > GetScheduledTasks ()
 

Properties

sealed override int MaximumConcurrencyLevel [get]
 

Private Member Functions

void NotifyThreadPoolOfPendingWork ()
 

Private Attributes

readonly LinkedList< Task > _tasks = new LinkedList<Task>()
 
readonly int _maxDegreeOfParallelism
 
int _delegatesQueuedOrRunning = 0
 

Static Private Attributes

static bool _currentThreadIsProcessingItems
 

Constructor & Destructor Documentation

IG.Test.LimitedConcurrencyLevelTaskScheduler.LimitedConcurrencyLevelTaskScheduler ( int  maxDegreeOfParallelism)
inline

Member Function Documentation

sealed override void IG.Test.LimitedConcurrencyLevelTaskScheduler.QueueTask ( Task  task)
inlineprotected
void IG.Test.LimitedConcurrencyLevelTaskScheduler.NotifyThreadPoolOfPendingWork ( )
inlineprivate
sealed override bool IG.Test.LimitedConcurrencyLevelTaskScheduler.TryExecuteTaskInline ( Task  task,
bool  taskWasPreviouslyQueued 
)
inlineprotected
sealed override bool IG.Test.LimitedConcurrencyLevelTaskScheduler.TryDequeue ( Task  task)
inlineprotected
sealed override IEnumerable<Task> IG.Test.LimitedConcurrencyLevelTaskScheduler.GetScheduledTasks ( )
inlineprotected

Member Data Documentation

bool IG.Test.LimitedConcurrencyLevelTaskScheduler._currentThreadIsProcessingItems
staticprivate
readonly LinkedList<Task> IG.Test.LimitedConcurrencyLevelTaskScheduler._tasks = new LinkedList<Task>()
private
readonly int IG.Test.LimitedConcurrencyLevelTaskScheduler._maxDegreeOfParallelism
private
int IG.Test.LimitedConcurrencyLevelTaskScheduler._delegatesQueuedOrRunning = 0
private

Property Documentation

sealed override int IG.Test.LimitedConcurrencyLevelTaskScheduler.MaximumConcurrencyLevel
get

The documentation for this class was generated from the following file: