【发布时间】:2012-09-11 09:25:31
【问题描述】:
在this 之后,任何人都可以为以下任务发布准系统解决方案,目标是 .NET 4.5(和更大规模的 WPF UI)吗?
基本上,我正在寻找在 .NET 4.5 和 c# 上实现的任何 torrent 应用程序的功能模拟。
任务:
我有IEnumerable<IProcessable>,包含1000 个IProcessable 实例,IProcessable 有Process(int argument) 方法,执行需要1 到10 秒。我想遍历集合并处理IProcessable的每个实例,将并发处理的实例数限制为N(1..10),最大并发实例数应该很容易调整。理想情况下,我希望每个 IProcessable 报告流程完成的进度,这是流程的原型(它可能需要转换为某种东西而不是 void 以启用进度报告):
void Process(int e)
{
int progress = 0;
...Sleep for 100ms;
int progress = 30;
...Sleep for 100ms;
int progress = 50;
...
}
【问题讨论】:
-
@Tudor 第二个,但是我看不出有什么不同,因为只有在处理 IProcessable 时才会创建新线程,我错过了什么吗?
标签: c# multithreading task-parallel-library .net-4.5