Rez*_*ler 18 .net c# task-parallel-library
我目前正在使用这里详细介绍的LimitedConcurrencyLevelTaskScheduler http://msdn.microsoft.com/en-us/library/ee789351.aspx
我想增强这一点,以便为个人任务分配优先权.这些优先级不需要映射到线程优先级.它应该只影响任务的启动顺序.
有谁知道这样一个任务调度程序的例子?(很多调度的东西都在我头上,所以如果有现有的解决方案会很棒)
Pan*_*vos 39
该并行扩展额外的样品.已经提供了这样的调度程序QueuedTaskScheduler.此调度程序提供优先级,并发限制,公平性和对所用线程的类型和优先级的细粒度控制.当然,您不必使用或配置您不需要的功能.
斯蒂芬Toub提供了各种调度在并行扩展额外的简要说明这里
要使用QueuedTaskScheduler,可以使用所需的优先级调用其ActivateNewQueue方法.此方法返回由父TaskScheduler管理的新TaskScheduler派生的Queue对象.所有使用特定队列的任务都由父TaskScheduler根据其优先级进行调度.
以下代码创建一个最大并发级别为4的调度程序,两个优先级队列并在第一个队列上调度任务:
QueuedTaskScheduler qts = new QueuedTaskScheduler(TaskScheduler.Default,4);
TaskScheduler pri0 = qts.ActivateNewQueue(priority: 0);
TaskScheduler pri1 = qts.ActivateNewQueue(priority: 1);
Task.Factory.StartNew(()=>{ },
CancellationToken.None,
TaskCreationOptions.None,
pri0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12239 次 |
| 最近记录: |