Heim Backend-Entwicklung C#.Net-Tutorial C# implementiert einfachen Code zur Überbrückung mit vorhandenen .NET-Ereignissen

C# implementiert einfachen Code zur Überbrückung mit vorhandenen .NET-Ereignissen

Mar 16, 2017 am 11:55 AM

In diesem Artikel werden hauptsächlich die relevanten Informationen von C# vorgestellt, um einfache Beispiele für die Überbrückung mit dem vorhandenen .NETEvent zu implementieren. Freunde in Not können sich auf

C# implementiert ein einfaches Beispiel für die Überbrückung vorhandener .NET-Ereignisse

Rx bietet Factory-Methoden zur Überbrückung vorhandener asynchroner Quellen in .NET, sodass Sie diese von jeder Art von Rich-Datenstrom verwenden können Kombinations-, Filter- und Ressourcenverwaltungsfunktionen. In diesem Thema wird der FromEventPattern

Operator untersucht, der es ermöglicht, .NET-Ereignisse als beobachtbare Sequenz in Rx zu „importieren“. Jedes Mal, wenn ein Ereignis ausgelöst wird, wird eine OnNext-Nachricht an die beobachtbare Sequenz übermittelt. Anschließend können Sie die Ereignisdaten wie jede andere beobachtbare Sequenz verarbeiten.

Rx ist nicht dazu gedacht, bestehende asynchrone

Programmiermodelle wie .NET-Ereignisse, asynchrone Muster oder aufgabenparallele Bibliotheken zu ersetzen. Wenn Sie jedoch versuchen, Ereignisse zu schreiben, bieten Ihnen die Factory-Methoden von Rx Annehmlichkeiten, die Sie in Ihrem aktuellen Programmiermodell nicht finden. Dies gilt insbesondere für die Ressourcenpflege (z. B. den Zeitpunkt der Abmeldung) und die Filterung (z. B. Auswahl der zu empfangenden Datentypen). In diesem und den folgenden Themen erfahren Sie, wie diese Rx-Funktionen Ihnen bei der asynchronen Programmierung helfen können.

Konvertieren Sie .NET-Ereignisse in beobachtbare Rx-Sequenzen

Das folgende Beispiel erstellt ein einfaches .NET-

Ereignishandlerprogramm für Mausbewegungsereignisse und druckt es aus die Mausposition in der Beschriftung eines Windows Forms.

using System.Linq;
using System.Windows.Forms;
using System.Reactive;
using System.Reactive.Linq;
using System;
using WinForm;
using System.Reactive.Disposables;

class Program {

  static void Main() 
  {
     var lbl = new Label(); 
     var frm = new Form { Controls = { lbl } }; 
     frm.MouseMove += (sender, args) =>
     {
       lbl.Text = args.Location.ToString();
     };
     Application.Run(frm);
  }; 
}
Nach dem Login kopieren
Um Ereignisse in Rx zu importieren, können Sie den FromEventPattern-Operator verwenden und das EventArgs

-Objekt bereitstellen, das von dem Ereignis ausgelöst wird, das Sie überbrücken möchten. Der FromEventPattern-Operator wird zum Empfangen von Ereignissen vom Absender des Objekts und einigen EventArgs verwendet und nutzt Reflektion, um diese Add/Remove-Methoden für Sie zu finden. Anschließend wird das angegebene Ereignis in eine beobachtbare Sequenz vom Typ EventPattern konvertiert, die die Absender- und Ereignisparameter erfasst.

Für Proxys mit einem Argument (einem nicht standardmäßigen Ereignis) können Sie den FromEvent

-Operator verwenden, der ein Paar Funktionen erfordert. Im folgenden Beispiel konvertieren wir einen Windows Forms-Mausbewegungs-Ereignisstrom in eine beobachtbare Sequenz. Abonnenten erhalten jedes Mal eine OnNext-Benachrichtigung, wenn das Mausbewegungsereignis ausgelöst wird. Wir können dann den EventArgs-Wert einer solchen Benachrichtigung überprüfen und die Position der Mausbewegung ermitteln.

Beachten Sie, dass in diesem Beispiel „move“ zu einer beobachtbaren Sequenz wird, die wir weiter manipulieren können. Das Thema
using System.Linq;
using System.Windows.Forms;
using System.Reactive;
using System.Reactive.Linq;
using System;
using WinForm;
using System.Reactive.Disposables;

class Program {

  static void Main() 
  {
     var lbl = new Label(); 
     var frm = new Form { Controls = { lbl } }; 
     IObservable<EventPattern<MouseEventArgs>> move = Observable.FromEventPattern<MouseEventArgs>(frm, "MouseMove");
     move.Subscribe(evt => { 
               lbl.Text = evt.EventArgs.Location.ToString(); 
            }) ;
     Application.Run(frm);
  }; 
}
Nach dem Login kopieren
Abfragen

beobachtbarer Sequenzen mithilfe von LINQ-Operatoren zeigt Ihnen, wie Sie diese Sequenz in eine Sammlung von Punkttypen projizieren und ihren Inhalt filtern, sodass Ihre Anwendung nur Werte empfängt, die bestimmte Bedingungen erfüllen. Die Bereinigung des Event-Handlers übernimmt das IDisposable-Objekt, das von der Subscribe-Methode zurückgegeben wird. Durch den Aufruf von Dispose (in diesem Beispiel durch Erreichen des Endes des Use-Blocks) werden alle von der Sequenz verwendeten Ressourcen einschließlich des zugrunde liegenden Event-Handlers freigegeben. Dies bedeutet im Wesentlichen, dass Sie sich in Ihrem Namen von der Veranstaltung abmelden.

Das obige ist der detaillierte Inhalt vonC# implementiert einfachen Code zur Überbrückung mit vorhandenen .NET-Ereignissen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

Zugriffsmodifikatoren in C# Zugriffsmodifikatoren in C# Sep 03, 2024 pm 03:24 PM

Leitfaden zu den Zugriffsmodifikatoren in C#. Wir haben die Einführungstypen von Zugriffsmodifikatoren in C# zusammen mit Beispielen und Ausgaben besprochen.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

C#-Serialisierung C#-Serialisierung Sep 03, 2024 pm 03:30 PM

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

See all articles