Pergunta

Eu me perguntei se é possível usar uma fila (especificamente como concorrente) como a fonte de um IOBServable? Algo como;

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

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

Eu acho que realmente não faz sentido porque nada está sendo desquistado. Estou tentando implementar um processo não bloqueador que possa se inscrever em "mensagens" sendo empurradas para observadores, daí o uso de uma fila. Tenho certeza de que devo ser capaz de fazer isso com o RX, mas parece que não consigo entender!

Eu estaria interessado em qualquer sugestão de como isso poderia ser implementado. Obrigado!

Foi útil?

Solução

Você está certo, a conversão de uma fila (simultânea ou simples, não importa) apenas a enumeraria, mas não de despedida. A implementação "real" é possível, mas mais complexa - veja o link para uma pergunta semelhante que fiz no fórum RX (que ainda é uma melhor fonte de informações sobre o RX comparando ao StackOverflow):

Como implementar uma única fila de produtores de consumidores de trabalhadores usando o RX?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top