Question

Je me demandais s'il est possible d'utiliser une file d'attente (en particulier comme ConcurrentQueue) comme la source d'un IObservable? Quelque chose comme;

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

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

Je suppose que cela ne fait pas vraiment de sens parce que rien est dequeued. Je suis en train de mettre en œuvre un processus non-blocage qui peut souscrire à « messages » poussés aux observateurs, d'où l'utilisation d'une file d'attente. Je suis sûr que je devrais être capable de le faire avec RX, mais ne peut pas sembler obtenir ma tête autour d'elle!

Je serais intéressé par des suggestions sur la façon dont cela pourrait être mis en œuvre. Merci!

Était-ce utile?

La solution

Vous avez raison, la conversion d'une file d'attente énumérer (en même temps ou simple, n'a pas d'importance) serait seulement, mais pas de-file d'attente. la mise en œuvre « Real » est possible, mais plus complexe - voir le lien à une question similaire j'ai demandé sur le forum RX (ce qui est encore une meilleure source d'information sur RX comparant à StackOverflow):

Comment mettre en œuvre une file d'attente de production à la consommation unique des travailleurs utilisant RX?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top