【发布时间】:2019-11-08 03:01:19
【问题描述】:
我正在尝试使用 BlockingCollection 生产者/消费者模式编写一个程序,其中生产者将继续每隔一秒生产一次数据,消费者使用它并每隔 60 秒在控制台窗口上显示我的生产者数据中的一些已处理数据。
现实生活中的场景是 - 我将每秒在生产者中获取 Open High Low Close 库存数据,我想将这些数据传递给消费者线程,该线程将从我将从第三个收到的 60 秒数据创建 1 分钟 OHLC 数据派对。为了模拟现实生活场景,我正在尝试创建一个生产者,该生产者将具有计时器,该计时器将每秒继续将数据放入 BlockingCollection 中,但不确定如何在生产者中使用计时器。任何人都可以用代码建议
- 我将如何创建生产者,它会使用生产者内部的计时器每秒持续生成 OHLC 数据。假设我的 OHLC 值将具有计数器,我将使用它来计算秒数。例如 O=1,H=1,L=1,C=1 O=2,H=2,L=2,C=2 …… O=60,H=60,L=60,C=60
一旦计数器达到 60 的倍数,我的消费者就会启动,这需要 60 秒的数据来创建一分钟的 OHLC 数据。 2. CompleteAdding 方法应该写在哪里,因为我的 Producer 永无止境 Producer 只有在我停止整个应用程序后才会停止
非常感谢您在这方面的任何帮助。提前致谢
【问题讨论】:
-
听起来像是响应式扩展的工作
-
@TheGeneral 是的,如果你能负担得起学习曲线!
标签: c# multithreading producer-consumer