У меня есть класс, который будет отвечать за генерацию событий на частый, но нерегулярный интервал, который должны потреблять и работать другие классы. Я хочу использовать Reactive Extensions для выполнения этой задачи.Как подтолкнуть сущность к наблюдаемому Rx?
Потребительская сторона этого очень проста; У меня есть потребительский класс, реализующий IObserver<Payload>
, и все выглядит хорошо. Проблема возникает в классе производителей.
Реализация IObservable<Payload>
непосредственно (то есть, поставив свою собственную реализацию для IDisposable Subscribe(IObserver<Payload>)
есть, в соответствии с документацией, не рекомендуется. Он предлагает вместо составления с Observable.Create()
набором функций. Так как мой класс будет работать в течение длительного времени, я уже пробовал создавать наблюдаемый с var myObservable = Observable.Never()
, а потом, когда у меня есть новые Payloads доступны, вызывая myObservable.Publish(payloadData)
. когда я делаю это, хотя, я, кажется, не попал в OnNext
реализации в моем потребителе.
Я думаю, что я могу создать событие в своем классе, а затем создать Observable с помощью функции FromEvent
, но это похоже на чрезмерное сотрудничество (т. е. кажется странным, что новая жара Observables «требует» событий для работы). Есть ли простой подход, который я рассматриваю здесь? Каков «стандартный» способ создания собственных источников Observable?
Как правило, если вы обнаруживаете, что используете либо «IObservable», либо «IObserver », то вы, вероятно, что-то не так. –
Enigmativity