Ich habe eine Klasse, die für die Generierung von Ereignissen in einem häufigen, aber unregelmäßigen Intervall verantwortlich ist, das andere Klassen verbrauchen und bearbeiten müssen. Ich möchte Reactive Extensions für diese Aufgabe verwenden.Wie schiebe ich eine Entität auf eine Rx Observable?
Die Verbraucherseite ist sehr einfach; Ich habe meine Verbraucherklasse IObserver<Payload>
und alles scheint gut. Das Problem kommt auf die Erzeugerklasse.
Implementierung IObservable<Payload>
direkt (das heißt, für IDisposable Subscribe(IObserver<Payload>)
meine eigene Implementierung setzen wird, entsprechend die Dokumentation, nicht zu empfehlen. Es schlägt vor, statt mit dem Observable.Create()
Satz von Funktionen zu komponieren. Da meine Klasse für eine lange Zeit laufen, ich habe versucht, mit var myObservable = Observable.Never()
einen beobachtbaren erstellen, und dann, wenn ich neue Nutzlasten zur Verfügung habe, myObservable.Publish(payloadData)
anrufen. wenn ich das tue, aber ich scheine nicht die OnNext
Umsetzung in meinem Verbraucher zu treffen.
ich denke, als ein Workaround, ich kann ein Ereignis in meiner Klasse erstellen und dann erstellen Sie die Observable mit der FromEvent
Funktion, aber das scheint wie ein Overly Co mplizierten Ansatz (d. h. es erscheint seltsam, dass die neue Schärfe von Observablen dazu führt, dass Ereignisse funktionieren). Gibt es einen einfachen Ansatz, den ich hier übersehen habe? Wie können Sie Ihre eigenen Observable-Quellen erstellen?
Wenn Sie in der Regel feststellen, dass Sie entweder "IObservable" oder "IObserver " implementieren, dann tun Sie wahrscheinlich etwas falsch. –
Enigmativity