有一组长期运行的离散任务:从文本文件中解析数十数千行,将其合并为对象,进行操作和持久化。

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

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

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

谢谢

有帮助吗?

解决方案

您可能想看看任务并行库

由于C#5,这是内置到使用asyncawait关键字的语言。

其他提示

如果你要问一堆.NET的人什么是最接近于等同于Java的Excecutors,它可能不会伤害来形容的Java执行人的显着特征。谁知道答案的人可能没有任何更熟悉Java比你用.NET。

这就是说,如果已经提到的任务并行库是矫枉过正满足您的需求,或者你不想等待.NET 4.0,可能的 ThreadPool.QueueUserWorkItem()将是你在找什么。

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

对于较旧的基于线程的方法,有线程池为池。

在BackgroundWorker的类可能是你在找什么。正如它的名字所暗示的,它允许你运行后台任务,具有自动管理池,和状态更新事件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top