c# - 与进度条并行处理一个月的日期

标签 c# multithreading asp.net-mvc-3

我正在开发一个 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/

相关文章:

c# - 从 .NET Framework 传统项目中引用 .NET Standard csproj 项目

c# - 整理 if 语句

java - 如何使用 JPA 和 Hibernate 的多个处理线程来持久化实体

c# - MVC3 cookie 滑动过期不起作用

view - 在局部 View 中修改 MVC 3 ViewBag 不会持久化到 _Layout.cshtml

asp.net-mvc - 在局部 View 中传递参数-MVC3/Razor

c# - UnitsNet 的 Json 序列化显示的数据比我类的多得多

c# - 在 catch 子句中禁止等待。寻找解决办法

c++ - std::shared_ptr 的 use_count() 周围的完整内存屏障是否会使它成为可靠的计数器?

java - 如果不会发生争用,读取时是否需要同步