RX - много потребителей по ключевой сложности подписки - PullRequest
0 голосов
/ 24 октября 2018

Я получил наблюдаемую KeyValuePair:

--(7|45.2)--(3|11.1)--(5|13.2)--(6|36.2)--(3|57.4)

Я получил список потребителей, определенных во время выполнения.Их интересуют только значения, созданные для одного ключа ( myKey ).

Например:

  • потребитель 7 заинтересован только в значении 45.2,
  • потребитель 3 интересуется только значениями 11.1 и 57.4
  • потребитель 1, интересуются только значениями с myKey = 1, поэтому здесь ничего нет.

Вот мой код подписки потребителя (по одному на каждого потребителя):

myObservable.Where(t => t.Key == myKey).Subscribe(t => /* DoSomething*/);

Давайте возьмем:

  • N = количество сообщений, создаваемых myObservable
  • M = количество потребителей

Давайте назовем Сравнение кодом t.Key == myKey

Для каждого нового публикуемого сообщения Сравнение будет выполняться M раз (один раз для каждого потребителя).В случае N сообщений будет выполнено сравнение N * M

Предлагает ли RX Extension другой способ избежать выполнения такого количества сравнений?

Нужно ли мнесделать это сам?(используя словарь (mykey, потребителей), например, и пересылать сообщения нужным пользователям)

Спасибо

...