Effektiver Nutzen Rx-Framework

14 views
Skip to first unread message

Laurin Stoll

unread,
Nov 22, 2010, 11:14:18 AM11/22/10
to altnetde
Hallo zusammen,

So zum ersten mal habe ich endlich Zeit mich mit dem Rx Framework zu
befassen.
Ich spiele gerade so ein wenig rum und kann mir den Sinn davon noch
nicht ganz erklären.
Was ich verstehe:

- Ich kann auf push-Quellen jetzt wie auf pull-Quellen Link anwenden
- D.h. ich kann auch auf Eventströme reagieren mit Linq

So... gut jetzt sehe ich überall die Beispiele wie toll man jetzt auf
Events reagieren kann.
Ein ganz banales Beispiel (der Autor meinte "wie eine Excel-Formel
reaktiv") hier:

var textChangedObservable =
Observable.FromEvent<EventArgs>(this.textBox1, "TextChanged");
textChangedObservable.Subscribe(e => this.label2.Text =
(int.Parse(this.textBox1.Text) + 3).ToString());

Hm... so richtig zu überzeugen vermag mich das nicht, bin ich doch mit
dem normalen Event schneller:

this.textBox1.TextChanged += (o, e) => this.label2.Text =
(int.Parse(this.textBox1.Text) + 3).ToString();

Irgendwie stellen mich die Artikel die ich zu RX finde nicht so ganz
zufrieden. Oder habe ich die falschen gefunden? Das IObservable das
pendant zu IEnumerable ist habe ich jetzt dann genug gelesen. Ich will
praktische, pragmatische Beispiele wann mir das Ding wirklich etwas
bringt!? Hat mir da jemand was?

Übrigens im Multithreading-Fall solls ja einiges erleichtern. Wie
weiss ich wenn mir das Rx Framework in einem eigenen Thread arbeitet?
Gerade bei Events wirds das ja wohl nicht... Kann ich da was
einstellen?

Danke euch schonmal,

Viele Grüsse
Laurin

Ralf Westphal

unread,
Nov 23, 2010, 5:01:10 AM11/23/10
to altnetde
Ich find Rx auch overhypet. Ne schöne Sache, nützlich, funktioniert.
Aber - wie ich schon mal gebloggt habe - am Ende kein neuer Gedanken.
CEP gibts schon lange.

Der ewige Mathehintergrund ist ermüdend. Bringt das Thema nicht so
richtig voran. Und bei der Erklärung hilft es nix.

Ist halt so wie Linq - nur auf Events. Schön. Jetzt weiter im
Tagesgeschäft ;-)

Dass dafür dann eigene Interfaces nötig sind - geschenkt. Eine Quelle
will halt "out of band" mitteilen, dass sie erschöpft ist oder ein
Fehler aufgetreten ist.

Die wunderbare Welt der Asynchronizität tut sich allerdings erst so
recht auf, weil bei IEnum "gezogen" wurde, d.h. ein synchroner Zugriff
stattfinden musste, pull.
Jetzt mit Rx ist push und damit ist der Sender unabhängig vom
Empfänger. Ob ein Event auf demselben oder einem anderen Thread
gefeuert wird, ist egal. Niemand wartet drauf. Bei IEnum wartet aber
einer.

Rx ist deshalb ne gute Ergänzung/Weiterentwicklung.

Laurin Stoll

unread,
Nov 23, 2010, 5:35:29 AM11/23/10
to altnetde
Ja und mit EBC klappts auch wie ich sehe ;-) Danke endlich sagts
jemand: Die ewige Mathematische Errungeschafts-Erklärung habe ich
genug gelesen.

Okey kurz und einfach sagst du ja: Es ist eine gute Weiterentwicklung
für asynchrones Programmieren.
Mich erinnert es irgendwie ein wenig an die CCR-Ports. Hat das was?
Kann ich mit Rx CCR ersetzen? Oder mache ich da ein Durcheinander?

Viele Grüsse
Laurin
> > Laurin- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

Ralf Westphal

unread,
Nov 23, 2010, 1:56:22 PM11/23/10
to altnetde
EBC kann man mit Rx machen. Muss man aber nicht. Mag hier und da
Vorteile bieten... aber zentral ist Rx dafür in jedem Fall nicht.

CCR hat nichts mit Rx zu tun. Aber Ports könnte man zu Observern
machen - oder besser noch: ein PortSet - und umgekehrt zu Observables.
Reply all
Reply to author
Forward
0 new messages