我有一个场景,比如我正在使用任务并行库,我需要限制创建的对象(这里是任务)的数量。这意味着它将重用现有任务,我正在考虑使用对象池设计模式来实现此功能。但是当我做一些研究时了解到“不支持重新启动正在运行或已完成的任务”。所以我的问题是我可以在这里使用对象池模式,即使它没有重用任务。因为无论如何我都在限制要创建的任务数量。请给一些建议。
问问题
690 次
1 回答
1
Task
在表示可执行工作单元(同步或异步)的对象中。您似乎正在尝试限制执行,而对象池用于限制创建的对象数量。重用任务没有真正意义(例如,与数据库连接不同)。
要限制并发执行,您可以使用SemaphoreSlim
withWait/WaitAsync
或使用TPL Dataflow
with MaxDegreeOfParallelism
。
要限制使用的线程数,您需要创建一个自定义TaskScheduler
于 2014-06-19T08:58:20.610 回答