我正在开发一个 ASP.Net MVC 3 C# 项目。
我已经阅读了有关 ThreadPool.QueueUserWorkItem 和 Tasks 的内容,我认为我需要的应该使用其中之一。
public static void ProcessDay(DateTime day) { ... }
假设我要处理从 2012-01-01 到 2012-01-31 的天,所以我必须调用 ProcessDay 函数 31 次。
如何一次处理 5 天,并在 5 个线程中的任何一个完成时继续运行更多线程,直到完成 31 天?
示例受到高度赞赏,考虑显示进度条是个好主意:)
最佳答案
看看TPL library - 例如,
DateTime startDate = new DateTime(2012, 01, 01);
var options = new ParallelOptions() { MaxDegreeOfParallelism = 5 };
Parallel.For(0, 30, options, day => { ProcessDay(startDay.AddDays(day)); });
关于c# - 与进度条并行处理一个月的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9579174/