gpt4 book ai didi

.net - 如何添加任务优先级功能

转载 作者:行者123 更新时间:2023-12-04 18:52:31 33 4
gpt4 key购买 nike

我将任务库用于我的图像压缩服务。我会压缩许多文件并发。但我希望服务仅在用户空闲时运行(或程序中不再有重要的任务)。

我知道 threadPool 不支持“更改线程优先级”功能,因此任务也支持此功能。

我可以在更高级别的控制上开发该功能吗?(例如 TaskScheduler 优先级)

最佳答案

正如@zengr 提到的,您可以使用优先级队列模式来解决这个问题。实际上有a good sample in MSDN使用 ConcurrentQueue<T> 实现优先级队列每个优先级的实例,然后用自定义 IProducerConsumerCollection<T> 包装它在较低优先级队列之前从较高优先级队列中提取项目的实现。这种类型的实现使您的生产者能够确定应该有多少优先级,在添加项目时分配优先级,并让您的消费者首先处理具有最高优先级的项目,而无需了解优先级算法。

关于.net - 如何添加任务优先级功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4067900/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com