Pregunta

Me preguntaba si es posible utilizar una cola (específicamente como ConcurrentQueue) como la fuente de un IObservable? Algo similar;

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

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

supongo que no tiene mucho sentido, porque nada se quita de la cola. Estoy tratando de poner en práctica un proceso de no-bloqueo que puede suscribirse a "mensajes" siendo empujados a los observadores, por lo tanto, el uso de una cola. Estoy seguro de que debería ser capaz de hacer esto con RX, pero parece que no puede conseguir mi cabeza alrededor de ella!

Yo estaría interesado en cualquier sugerencia sobre cómo esto podría ser implementado. Gracias!

¿Fue útil?

Solución

Tienes razón, la conversión de una cola (concurrente o simple, no importa) sería solamente enumerar, pero no de-cola. aplicación "real" es posible, pero más complejo - ver el enlace a una pregunta similar le pregunté en el foro RX (que todavía es una mejor fuente de información sobre RX en comparación con stackoverflow):

Cómo implementar una cola solo trabajador productor al consumidor usando RX?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top