0

之后,任何人都可以为以下任务发布准系统解决方案,针对 .NET 4.5(以及更大规模的 WPF UI)吗?

基本上,我正在寻找在 .NET 4.5 和 c# 上实现的任何 torrent 应用程序的功能模拟。

任务:

我有IEnumerable<IProcessable>,包含 1000 个实例IProcessableIProcessableProcess(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;
   ...
}
4

1 回答 1

3

如果您只想限制一次处理的实例数,那么这似乎Parallel.ForEach()是一个很好的解决方案。当您使用它时,您可以指定MaxDegreeOfParallelism, 执行此操作。

于 2012-09-11T10:34:45.133 回答