.Net 中是否有与 java.util.concurrent.Executor 等效的程序?
-
06-09-2019 - |
题
有一组长期运行的离散任务:从文本文件中解析数十数千行,将其合并为对象,进行操作和持久化。
如果我用 Java 实现这一点,我想我可能会为文件中的每一行或每 X 行的任务添加一个新任务到执行器(即块)。
对于我正在使用的.Net,我不太确定。我怀疑 CCR 可能适合这里,但我对它不够熟悉,这就是我提出这个问题的原因。
CCR 能否以与 Java 执行器等效的方式运行,或者还有其他可用的功能吗?
谢谢
解决方案
您可能想看看任务并行库。
由于C#5,这是内置到使用async
和await
关键字的语言。
其他提示
如果你要问一堆.NET的人什么是最接近于等同于Java的Excecutors,它可能不会伤害来形容的Java执行人的显着特征。谁知道答案的人可能没有任何更熟悉Java比你用.NET。
这就是说,如果已经提到的任务并行库是矫枉过正满足您的需求,或者你不想等待.NET 4.0,可能的 ThreadPool.QueueUserWorkItem()将是你在找什么。
也许这是相关的:设计:任务并行库探索。 请参见 10-4第6集:并行扩展作为快速介绍
对于较旧的基于线程的方法,有线程池一>为池。
在BackgroundWorker的类可能是你在找什么。正如它的名字所暗示的,它允许你运行后台任务,具有自动管理池,和状态更新事件。
对于任何寻求更现代解决方案的人(就像我一样),请查看 事件循环调度器 班级。
不隶属于 StackOverflow