因此,我正在构建一个具有对象列表的控制台应用程序。
每1000毫秒,一个"制作人"正在执行HTTP请求并从结果中创建新对象,并将其添加到对象列表中。
每1000毫秒,一个"消费者"正在分析列表中的所有对象。
每2000毫秒,另一个"消费者"正在分析列表中的所有对象。
每3500毫秒,另一个"消费者"正在分析列表中的所有对象。
偶尔,在任意时间,我想问一位消费者这个分析数据的结果是什么。
所以这听起来像是一个经典的生产者/消费者模式。在JavaScript中,这不是一个问题,因为它是非阻塞的。但是C#怎么样?我认为这可能是一场并发的噩梦。据我所知,这不能简单地使用Tasks来完成,因为你无法控制它是在同一个线程上下文中运行,还是在新线程中运行。
我正在寻找最简单的"如何完成上述案例。我已经研究了像TPL Dataflow这样的东西,也被认为是一个简单的事件循环模式"有了deltatime(就像在视频游戏中一样),你的建议是什么?
致以最诚挚的问候,