我想知道如果它可能使用一队列(具体为ConcurrentQueue),为的IObservable来源?像;

  Queue = new ConcurrentQueue<IMessage>();
  var xs = Queue.AsEnumerable().ToObservable();

  xs.Subscribe((IMessage msg) =>
     {
        Console.WriteLine("Msg :" + msg.subject);
     });

我想这并没有什么意义,因为什么都没有出队。我想实现一个无阻塞的过程,可以订阅“消息”被推到观察员,因此,使用一个队列。我敢肯定,我应该能够与RX做到这一点,但似乎无法让我的头周围!

我很感兴趣的任何建议,就如何实现这一点的。谢谢!

有帮助吗?

解决方案

您说得对,转换队列(并发或简单的,无所谓)只会枚举,但不是去排队。 “真正”的实现是可能的,但更复杂的 - 看到链接到一个类似的问题,我问的RX论坛(这仍然是信息RX更好的来源比较StackOverflow上):

如何实现使用RX一个工人消费者生产者队列?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top