拥有一组长期独立的任务:从文本文件中解析数千行,保存为对象,操作和持久化。
如果我在Java中实现它,我想我可能会为每个X行(即块)中的文件或任务中的每一行向Executor添加一个新任务。
对于.Net,这是我正在使用的,我不太确定。我怀疑可能CCR在这里可能是合适的,但我对它不够熟悉,这就是我提出这个问题的原因。
CCR能否以与Java Executors等效的方式运行,还是有其他可用的东西?
由于
答案 0 :(得分:5)
您可能需要查看Task Parallel Library。
从C#5开始,使用async
和await
关键字将其内置到语言中。
答案 1 :(得分:2)
如果您要向一群.NET人员询问什么是最接近Java Excecutors的东西,那么描述Java Executors的区别特征可能并没什么坏处。知道你的答案的人可能不再熟悉Java了。
也就是说,如果已经提到的任务并行库满足您的需求,或者您不想等待.NET 4.0,那么ThreadPool.QueueUserWorkItem()可能就是您所需要的。
答案 2 :(得分:1)
也许这是相关的:Design: Task Parallel Library explored。 请参阅10-4 Episode 6: Parallel Extensions作为快速介绍。
对于较旧的基于线程的方法,有ThreadPool用于汇集。
答案 3 :(得分:0)
BackgroundWorker类可能正是您正在寻找的。顾名思义,它允许您运行后台任务,自动管理池和状态更新事件。
答案 4 :(得分:0)
对于寻找更现代解决方案的人(就像我一样),请查看EventLoopScheduler课程。