任务并行库中的优先队列

问题描述 投票:4回答:3

是否有优先级将任务添加到TPL运行时的任何先前工作?

一般来说,如果没有,我将如何实施?

理想情况下,我计划使用生产者-消费者模式将“待办事项”工作添加到TPL。有时我发现低优先级的工作需要升级为高优先级的工作(相对于其他工作)。

如果有人在搜索时需要使用一些搜索关键字,请提及它们,因为我尚未找到满足我需要的代码。

c# multithreading task-parallel-library priority-queue producer-consumer
3个回答
3
投票

ParallelExtensionsExtras contains several custom TaskSchedulers可能直接或作为您自己的调度程序的基础都可能有用。


2
投票

因此,这是一个围绕天真的优先级队列的天真的并发实现。这里的想法是有一个排序的集合,既保留了真实项目又包含了优先级对,但是给了一个比较器,用于比较优先级。构造函数采用一个函数来计算给定对象的优先级。


1
投票

我已经实现了优先级FIFO任务队列。它非常简单,可以像具有优先级的ActionBlock一样工作。

© www.soinside.com 2019 - 2024. All rights reserved.