这篇文章主要介绍了C# 实现与现有.NET事件桥接简单实例的相关资料,需要的朋友可以参考下
C# 实现与现有.NET事件桥接简单实例
Rx提供了工厂方法,以便与.NET中的现有异步源桥接,以便您可以使用由任何类型的数据流提供的丰富的组合,过滤和资源管理功能。 本主题检查FromEventPattern运算符,它允许将.NET事件作为可观察序列“导入”到Rx中。 每次引发事件时,OnNext消息将被传递到可观察的序列。 然后,您可以像任何其他可观察序列一样处理事件数据。
Rx并不旨在替换现有的异步编程模型,如.NET事件,异步模式或任务并行库。 但是,当您尝试编写事件时,Rx的工厂方法将为您提供在当前编程模型中找不到的方便。 这对于资源维护(例如,何时取消订阅)和过滤(例如,选择要接收什么类型的数据)尤其如此。 在本主题和后面的主题中,您可以了解这些Rx功能如何帮助您进行异步编程。
将.NET事件转换为Rx可观察序列
以下示例为鼠标移动事件创建一个简单的.NET事件处理程序,并在Windows窗体的标签中打印鼠标的位置。
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); }; }
要将事件导入Rx,您可以使用FromEventPattern运算符,并提供将由要桥接的事件引发的EventArgs对象。 FromEventPattern运算符用于接收对象发送方和一些EventArgs的事件,并使用反射为您找到这些添加/删除方法。 然后,它将给定事件转换为具有EventPattern类型的可观察序列,该类型捕获发送方和事件参数。
对于具有一个参数(非标准事件)的代理,可以使用FromEvent操作符,该操作符需要一对用于附加和分离处理程序的函数。
在下面的示例中,我们将Windows窗体的鼠标移动事件流转换为可观察序列。 每次触发鼠标移动事件时,订阅者将收到OnNext通知。 然后,我们可以检查此类通知的EventArgs值,并获取鼠标移动的位置。
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); }; }
注意,在这个示例中,move变成了一个可观察的序列,我们可以进一步操作。 使用LINQ运算符的查询可观察序列主题将向您展示如何将此序列投影到点类型的集合中并过滤其内容,以便应用程序只接收满足特定条件的值。
事件处理程序的清理由Subscribe方法返回的IDisposable对象负责。 调用Dispose(通过在此示例中到达use-block的末尾来完成)将释放包括底层事件处理程序的序列正在使用的所有资源。 这本质上是代表您取消订阅活动。
Atas ialah kandungan terperinci C#实现与现有.NET事件桥接的简单代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Trend masa depan C#.NET terutamanya tertumpu pada tiga aspek: pengkomputeran awan, microservices, AI dan integrasi pembelajaran mesin, dan pembangunan silang platform. 1) Pengkomputeran awan dan microservices: C#.NET mengoptimumkan prestasi persekitaran awan melalui platform Azure dan menyokong pembinaan seni bina microservice yang cekap. 2) Integrasi AI dan Pembelajaran Mesin: Dengan bantuan Perpustakaan ML.NET, pemaju C# boleh membenamkan model pembelajaran mesin dalam aplikasi mereka untuk mempromosikan pembangunan aplikasi pintar. 3) Pembangunan silang platform: Melalui .Netcore dan .NET5, C# Aplikasi boleh dijalankan pada Windows, Linux dan MacOS, memperluaskan skop penempatan.

Perkembangan terkini dan amalan terbaik dalam pembangunan C#. NET termasuk: 1. Pengaturcaraan Asynchronous meningkatkan respons aplikasi, dan memudahkan kod yang tidak menyekat menggunakan async dan menunggu kata kunci; 2. LINQ menyediakan fungsi pertanyaan yang kuat, memanipulasi data dengan cekap melalui pelaksanaan dan pokok ekspresi yang tertunda; 3. Cadangan Pengoptimuman Prestasi termasuk menggunakan pengaturcaraan asynchronous, mengoptimumkan pertanyaan LINQ, memori pengurusan rasional, meningkatkan kebolehbacaan dan penyelenggaraan kod, dan ujian unit penulisan.

Bagaimana Membina Aplikasi Menggunakan .NET? Membina aplikasi menggunakan .NET boleh dicapai melalui langkah-langkah berikut: 1) Memahami asas-asas .NET, termasuk C# bahasa dan sokongan pembangunan silang platform; 2) mempelajari konsep teras seperti komponen dan prinsip kerja ekosistem .NET; 3) menguasai penggunaan asas dan lanjutan, dari aplikasi konsol mudah ke operasi WebAPIS dan pangkalan data yang kompleks; 4) terbiasa dengan kesilapan biasa dan teknik debugging, seperti konfigurasi dan isu sambungan pangkalan data; 5) Pengoptimuman prestasi aplikasi dan amalan terbaik, seperti pengaturcaraan dan caching asynchronous.

C# digunakan secara meluas dalam aplikasi peringkat perusahaan, pembangunan permainan, aplikasi mudah alih dan pembangunan web. 1) Dalam aplikasi peringkat perusahaan, C# sering digunakan untuk ASP.Netcore untuk membangunkan WebAPI. 2) Dalam pembangunan permainan, C# digabungkan dengan enjin Perpaduan untuk merealisasikan kawalan peranan dan fungsi lain. 3) C# menyokong polimorfisme dan pengaturcaraan tak segerak untuk meningkatkan fleksibiliti kod dan prestasi aplikasi.

C# dan .NET sesuai untuk pembangunan web, desktop dan mudah alih. 1) Dalam pembangunan web, ASP.Netcore menyokong pembangunan silang platform. 2) Pembangunan desktop menggunakan WPF dan WinForms, yang sesuai untuk keperluan yang berbeza. 3) Pembangunan mudah alih menyedari aplikasi silang platform melalui Xamarin.

Ekosistem C#.NET menyediakan rangka kerja dan perpustakaan yang kaya untuk membantu pemaju membina aplikasi dengan cekap. 1.asp.NetCore digunakan untuk membina aplikasi web berprestasi tinggi, 2.EntityFrameworkCore digunakan untuk operasi pangkalan data. Dengan memahami penggunaan dan amalan terbaik alat -alat ini, pemaju dapat meningkatkan kualiti dan prestasi aplikasi mereka.

Bagaimana cara menggunakan aplikasi C# .net ke Azure atau AWS? Jawapannya ialah menggunakan Azureappservice dan AwselasticBeansTalk. 1. Pada Azure, mengautomasikan penggunaan menggunakan Azureappservice dan Azurepipelines. 2. Pada AWS, gunakan Amazon ElasticBeansTalk dan AWSLambda untuk melaksanakan penempatan dan pengiraan tanpa pelayan.

Gabungan C# dan .NET menyediakan pemaju dengan persekitaran pengaturcaraan yang kuat. 1) C# menyokong polimorfisme dan pengaturcaraan asynchronous, 2) .NET menyediakan keupayaan silang platform dan mekanisme pemprosesan serentak, yang menjadikannya digunakan secara meluas dalam pembangunan aplikasi desktop, web dan mudah alih.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular
