EffectPriorityScheduler Class
Namespace: Stride.Shaders.CompilerAssembly: Stride.Shaders.dll
A System.Threading.Tasks.TaskScheduler with control over concurrency and priority, useful with EffectCompilerCache.
System.Object → System.Threading.Tasks.TaskScheduler →
EffectPriorityScheduler
Derived from EffectPriorityScheduler:
public class EffectPriorityScheduler : TaskScheduler, IDisposable
| Name | Description | |
|---|---|---|
| Constructors | ||
| EffectPriorityScheduler(ThreadPriority, Int32) | ||
| Properties | ||
| MaximumConcurrencyLevel | ||
| QueuedTaskCount | ||
| Methods | ||
| Dispose() | ||
| GetOrCreatePriorityGroup(Int32) | Gets the or create a task scheduler for the given priority. |
|
| GetScheduledTasks() | ||
| QueueTask(Task) | ||
| TryExecuteTaskInline(Task, Boolean) | ||
Constructors
EffectPriorityScheduler(ThreadPriority, Int32)
public EffectPriorityScheduler(ThreadPriority threadPriority, int maximumConcurrencyLevel)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Threading.ThreadPriority | threadPriority | |
| System.Int32 | maximumConcurrencyLevel |
Properties
MaximumConcurrencyLevel
public override int MaximumConcurrencyLevel { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Overrides
System.Threading.Tasks.TaskScheduler.MaximumConcurrencyLevel
QueuedTaskCount
public int QueuedTaskCount { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Methods
Dispose()
public void Dispose()
GetOrCreatePriorityGroup(Int32)
Gets the or create a task scheduler for the given priority.
public TaskScheduler GetOrCreatePriorityGroup(int priority)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | priority | The priority. |
Returns
| Type | Description |
|---|---|
| System.Threading.Tasks.TaskScheduler |
GetScheduledTasks()
protected override IEnumerable<Task> GetScheduledTasks()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task> |
Overrides
System.Threading.Tasks.TaskScheduler.GetScheduledTasks()
QueueTask(Task)
protected override void QueueTask(Task task)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Threading.Tasks.Task | task |
Overrides
System.Threading.Tasks.TaskScheduler.QueueTask(System.Threading.Tasks.Task)
TryExecuteTaskInline(Task, Boolean)
protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Threading.Tasks.Task | task | |
| System.Boolean | taskWasPreviouslyQueued |
Returns
| Type | Description |
|---|---|
| System.Boolean |
Overrides
System.Threading.Tasks.TaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, System.Boolean)
Inherited Members
System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext()
System.Threading.Tasks.TaskScheduler.TryDequeue(System.Threading.Tasks.Task)
System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)
System.Threading.Tasks.TaskScheduler.Current
System.Threading.Tasks.TaskScheduler.Default
System.Threading.Tasks.TaskScheduler.Id
System.Threading.Tasks.TaskScheduler.UnobservedTaskException