概述C#事件驱动程序

开发 后端
本文介绍C#事件驱动程序这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。

C#事件驱动程序这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。

先来看看事件编程有哪些好处。

在以往我们编写这类程序中,往往采用等待机制,为了等待某件事情的发生,需要不断地检测某些判断变量,而引入事件编程后,大大简化了这种过程:

◆使用事件,可以很方便地确定程序执行顺序。

◆当C#事件驱动程序等待事件时,它不占用很多资源。C#事件驱动程序与过程式程序***的不同就在于,程序不再不停地检查输入设备,而是呆着不动,等待消息的到来,每个输入的消息会被排进队列,等待程序处理它。如果没有消息在等待,则程序会把控制交回给操作系统,以运行其他程序。

◆事件简化了编程。操作系统只是简单地将消息传送给对象,由对象的C#事件驱动程序确定事件的处理方法。操作系统不必知道程序的内部工作机制,只是需要知道如何与对象进行对话,也就是如何传递消息。

有了这么多好处,看来我们的确有必要掌握它。俗话说:“难了不会,会了不难”。就让我们一步一步开始吧...

要讲事件,必然要讲到委托(delegate)。它们之间的关系可以通过一个浅显的比方来说明,这个比方可能不是十分恰当。比如你要租一个房屋,这是一个事件,那么委托就是房屋租赁中介,当你把租房子的消息告知中介后,中介就会产生出一套符合你要求的房屋租赁方案来。再由中介执行这套方案,你便租得了这个房屋,即事件被处理了。当然你也可以不通过中介,直接找房东,但如果没有互联网等工具,你如何得到谁出租房屋的信息?话题扯远了。

委托(delegate)
委托可以理解成为函数指针,不同的是委托是面向对象,而且是类型安全的。关于委托的理解,可以参考我的另一篇文章《C#委托之个人理解》。

【编辑推荐】

  1. 定义C#接口学习经验
  2. C# ListBox学习笔记
  3. 操作C# Dataset介绍
  4. C# ODBC访问MySQL数据库
  5. 浅析C#和Java不同点
责任编辑:佚名 来源: BlogJava
相关推荐

2009-07-06 18:17:46

JDBC驱动程序

2009-08-12 18:28:09

C#事件处理程序

2009-08-24 14:19:27

C# Windows应

2017-03-03 08:40:32

2011-01-10 18:21:38

linux编写程序

2010-01-07 13:27:22

Linux驱动程序

2021-12-06 07:47:36

Linux 驱动程序Linux 系统

2019-10-22 15:40:34

Windows 10驱动程序Windows

2013-10-31 16:29:10

Linux内核

2009-12-07 09:39:04

Linux设备驱动硬件通信

2009-09-03 10:42:16

C# Employee

2009-08-24 18:09:13

C#构造函数

2009-08-17 09:57:00

C# Windows

2009-08-25 10:08:39

C# MyData对象

2009-08-25 16:49:44

C#使用if语句

2009-08-19 11:09:00

C# Cast<T>

2009-08-20 16:28:45

C#匿名方法

2011-01-06 16:29:08

linuxtasklet机制

2009-09-04 10:10:33

Visual Basi

2022-03-08 09:25:52

数据库系统MongoDB
点赞
收藏

51CTO技术栈公众号