12

有一组长时间运行的离散任务:从文本文件中解析成千上万行、水合为对象、操作和持久化。

如果我在 Java 中实现它,我想我可能会为文件中的每一行或每 X 行(即块)中的任务添加一个新任务到 Executor。

对于我正在使用的.Net,我不太确定。我怀疑 CCR 在这里可能是合适的,但我对它不够熟悉,这就是我提出这个问题的原因。

CCR 能否以与 Java Executors 等效的方式运行,或者还有其他可用的功能吗?

谢谢

4

5 回答 5

5

您可能想查看Task Parallel Library

async从 C# 5 开始,这是使用andawait关键字内置到语言中的。

于 2009-05-29T20:49:23.680 回答
1

也许这是相关的:设计:探索的任务并行库。请参阅第 10-4 集第 6 集:并行扩展作为快速介绍。

对于较旧的基于线程的方法,可以使用ThreadPool进行池化。

于 2009-05-29T20:49:33.277 回答
1

如果你要问一大群 .NET 人员,什么最接近等同于 Java Executors,描述 Java Executors 的显着特征可能没有什么坏处。知道你答案的人可能并不像你对 .NET 那样熟悉 Java。

也就是说,如果已经提到的任务并行库对您的需求来说太过分了,或者您不想等待 .NET 4.0,那么ThreadPool.QueueUserWorkItem()可能就是您要寻找的。

于 2009-05-29T21:00:48.743 回答
0

BackgroundWorker 类可能是您正在寻找的。顾名思义,它允许您运行后台任务、自动管理池和状态更新事件。

于 2009-05-29T20:49:23.073 回答
0

对于任何寻求更现代解决方案的人(就像我一样),请查看EventLoopScheduler类。

于 2018-06-16T18:36:27.870 回答