我正在试验 System.Collections.Concurrent 命名空间,但我在实现我的设计时遇到了问题。
- 我的输入队列(ConcurrentQueue)正在从一个线程很好地填充,该线程在启动时执行一些 I/O 以读取和解析。
- 接下来,我在输入队列上启动 Parallel.ForEach()。我正在对每个项目进行一些 I/O 绑定工作。
- 为 ForEach() 中处理的每个项目创建一个日志项目,并将其放入结果队列中。
我想做的是开始记录我开始阅读输入,因为我可能无法将所有日志项都放在内存中。等待项目进入结果队列的最佳方式是什么?是否有我应该查看的设计模式或示例?