我需要在 c# 中并行处理数据库中的几行(可能是数百万行)。处理速度非常快(50 或 150 毫秒/行),但我无法在运行前知道这个速度,因为它取决于硬件/网络。
ThreadPool 或更新的 TaskParallelLibrary 似乎满足了我的需求,因为我是线程新手,并且希望获得最有效的数据处理方式。
然而,这些方法并没有提供一种方法来控制我的任务的执行速度(行/分钟):我希望能够为处理设置最大速度限制或全速运行。
请注意,设置 ThreadPool/TaskFactory 的线程数并不能满足我的需要,因为我希望能够将速度限制设置为低于“单线程速度”。
为 TPL 使用自定义调度程序似乎是一种方法,但我没有找到实现它的方法。
此外,我担心采用这种设置的效率成本。
您能否为我提供如何完成这项工作的方法或建议?
提前感谢您的回答。