我需要在C#4.0中实现一个逻辑,在该逻辑中,操作可以立即执行,也可以放入等待特定网络服务可用的队列中。
实施此类操作的最佳方法是什么?它是否具有Function的线程安全队列和仅在资源可用时才使用这些操作的轮询使用者?
是否有用于实现类似功能的库或示例?
答案 0 :(得分:1)
我们可以通过大量的实施来实现生产者消费者的方法。此外,.NET Concurrent
命名空间也有BlockingCollection<T>
或ConcurrentQueue<T>
。但是,似乎挑战不是实现生产者消费者模式,而是等待Queue
直到某些资源可用(在您的情况下是网络服务)。这更像是非确定性情况,您不知道资源何时可以使用。可以通过具有持久性的队列来解决此挑战。例如:Microsoft's Message Queue (MSMQ)
有私人/公共队列。