优先级TPL数据流缓冲块

9
应该是一件非常自然的事情,我想知道TPL DataFlow库中是否有Prioritized BufferBlock的现成实现?

你认为它在 BoundedCapacity 方面的表现如何?或者说,这是你不需要的功能吗? - svick
@svick 我认为如果达到了“BoundedCapacity”,那么它会将项目丢弃在列表末尾。虽然不是最理想的方法,但这是一种方法。另一种方法是始终将“BoundedCapacity”设置为“DataflowBlockOptions”的“Unbounded”。 - casperOne
1
我会对这样的代码块保持谨慎。所有现有的数据流块都保证消息顺序得到保留,而这段代码似乎违反了这个保证。 - Andrew Arnott
1
无论我看到哪里,似乎没有人意识到优先队列的有效需求。我无法理解为什么会这样。在低级IO操作(甚至高级IO操作)中,优先排队非常重要。@husayt,你有解决问题的办法吗? - Francois Nel
1个回答

0

看起来实现这个的最好方法是使用专门的任务调度器,而不是实现自己的缓冲块。在网络上可以找到许多种类的任务调度器。例如,在ParallelExtensions Library中检查QueuedTaskScheduler


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接