Frage

EDIT: Danke für den Link zum Wiki, denke ich, dass seit seinem bereits dort begonnen, ist es einfacher, dorthin zu gehen, es auszuprobieren. Doch hier ist die Frage ist auch gut, so dass die Leute, die nicht um die Msdn Foren sind erhalten über das Wiki wissen, und wo es ist.

Kurze Frage:

Haben Sie eine Probe von Rx-Code haben, dass die Menschen es verstehen besser helfen könnte?

Lange Wanderungen mit versteckter Frage:

Nun, da der Rx Rahmen freigegeben wurde, glaube ich, dass viele von uns interessiert sind in die Bits immer und zu versuchen, sie aus. Leider gibt es wirklich nicht viele Beispiele gibt (nach einer erschöpfenden Suche I Rx wurde nur leicht gemeint fast überzeugt bin Ziehen auf WPF-Anwendungen zu tun).

Ich kann nicht genau erinnern, wo es war, dass ich gehört oder gelesen (ich habe in vielen Blogs und Videos suchen), dass die Rx-Team tun, um die 101-Serie interessiert zu sein scheint ..., wenn sie genug Zeit bekommen es zu tun ... das ist ziemlich viel für diejenigen, saugt die es verstehen wollen, und jetzt mit ihm spielen (und ich meine, was selbst angesehener Entwickler fühlt sich nicht wie ein Kind mit einem neuen Spielzeug, wenn ein neuer Tech. wie folgt kommt).

Ich habe einen Versuch jetzt persönlich, aber wow gibt es einige verrückten Konzepte in ihm ... wie Methoden Namen haben Materialise und Zip lässt mich denken, von Teleporter und Sachen von Zurück in die Zukunft .

Also, ich glaube, es wäre schön, wenn die, die mit einem besseren Verständnis, eine Sammlung von Beispielen zu bauen helfen, ala 101 Linq Beispielen , die zu komplexeren Sachen von Basisnutzung geht, und so ziemlich decke alle Methoden und deren Verwendung in einer praktischen Art und Weise (vielleicht mit einem wenig Theorie zu, besonders, da diese Art von Konzepten erforderlich, um es wahrscheinlich)

denke ich es gut, dass MS Devs Zeit nehmen, uns wie das Material zu geben, aber ich denke auch, diese Gemeinschaft gut genug ist, unser eigenes Material zu errichten beginnen, müssen Sie nicht?

War es hilfreich?

Lösung

Ich habe tatsächlich Ähnliche Gedanken vor Tagen Paar. Wir begannen unsere eigenen „101 Rx Samples“ als Beitrag im Forum Rx MSDN, aber wir haben, da es zu einem Wiki-Format verschoben. Bitte fühlen Sie sich frei zu kommen und eigene Samples hinzuzufügen!

101 Rx Proben auf dem Rx-Wiki

Andere Tipps

Zu Beginn - Hier ist ein einfaches Zeichenprogramm, das so, wenn der Benutzer zieht, haben wir eine rote Linie von der anfänglichen Maus nach unten Position auf die aktuelle Lage zeichnen, und auch einen blauen Fleck an der aktuellen Position. Dies ist das Ergebnis meiner letzten Woche Hack auf Rx

Eine WPF Drawing Demo

Und hier ist der Quellcode.

//A draw on drag method to perform the draw
void DrawOnDrag(Canvas e)
        {

            //Get the initial position and dragged points using LINQ to Events
            var mouseDragPoints = from md in e.GetMouseDown()
                                  let startpos=md.EventArgs.GetPosition(e)
                                  from mm in e.GetMouseMove().Until(e.GetMouseUp())
                                  select new
                                  {
                                      StartPos = startpos,
                                      CurrentPos = mm.EventArgs.GetPosition(e),
                                  };


            //Subscribe and draw a line from start position to current position
            mouseDragPoints.Subscribe
                (item =>
                {
                    e.Children.Add(new Line()
                    {
                        Stroke = Brushes.Red,
                        X1 = item.StartPos.X,
                        X2 = item.CurrentPos.X,
                        Y1 = item.StartPos.Y,
                        Y2 = item.CurrentPos.Y
                    });

                    var ellipse = new Ellipse()
                    {
                        Stroke = Brushes.Blue,
                        StrokeThickness = 10,
                        Fill = Brushes.Blue
                    };
                    Canvas.SetLeft(ellipse, item.CurrentPos.X);
                    Canvas.SetTop(ellipse, item.CurrentPos.Y);
                    e.Children.Add(ellipse);
                }
                );
        }

meinen Beitrag mit weiteren Lesen Erklärung hier und Laden Sie den Quellcode hier

Hope, das hilft

Eine weitere nützliche Ressource kann der Reactive Extensions (Rx) Koans : 55 progressive Beispiele zu Hilfe Sie lernen Rx

Ich lese http://www.introtorx.com , die wie der Name schon sagt zu sein scheint eine kurze Einführung. Es scheint ziemlich viel (sehr einfache) Beispiele zu sein, Schritt-für-Schritt, vor allem über die Konsole Sachen auszudrucken.

Hier ist meine Variante der Drag & Drop Probe von Wes Dyer für Windows Forms (ich würde eine Erweiterungsmethode machen EnableDragging, wahrscheinlich):

    public Form2()
    {
        InitializeComponent();

        EnableDragging(pictureBox1);
        EnableDragging(button1);
        EnableDragging(this);
    }

    private void EnableDragging(Control c)
    {
        // Long way, but strongly typed.
        var downs = from down in Observable.FromEvent<MouseEventHandler, MouseEventArgs>(
                        eh => new MouseEventHandler(eh), 
                        eh => c.MouseDown += eh,  
                        eh => c.MouseDown -= eh)
                    select new { down.EventArgs.X, down.EventArgs.Y };

        // Short way.
        var moves = from move in Observable.FromEvent<MouseEventArgs>(c, "MouseMove")
                    select new { move.EventArgs.X, move.EventArgs.Y };

        var ups = Observable.FromEvent<MouseEventArgs>(c, "MouseUp");

        var drags = from down in downs
                    from move in moves.TakeUntil(ups)
                    select new Point { X = move.X - down.X, Y = move.Y - down.Y };

        drags.Subscribe(drag => c.SetBounds(c.Location.X + drag.X, c.Location.Y + drag.Y, 0, 0, BoundsSpecified.Location));
    }  

Ein bisschen spät, aber wenn jemand neue stolpert über diese Frage, http://rxmarbles.com/ bietet eine sehr schöne Art und Weise der Betreiber sichtbar zu machen.

Und ein Auf Viewers Beispiel auf Github eingeben Bild Beschreibung hier

  1. StreamProvider zieht Daten von einem Server, und erzeugt einen Rx.NET IObservable Strom.
  2. StreamAggregator aggregiert alle IObservable Streams und dupliziert das Ergebnis in einer zentralen Verarbeitungsthread.
  3. Die Ansichten der einzelnen Strom filtern und das Ergebnis in ihre eigenen Threads für die Anzeige duplizieren.

Alle StreamProviders, StreamAggregate und Ansichten laufen in ihren eigenen Threads. Dies ist auch ein typisches Threading-Modell der realen Welt stock sieht Anwendungen.

Dieses Beispiel kann auch eine einfache Leistungstest Skelett für WPF Datagrid sein. Es berechnet Zecken / Sekunde verarbeitet und zeigt sie auf der Ansicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top