事件驱动程序设计

✍ dations ◷ 2025-11-24 07:26:30 #计算机编程,事件 (计算机)

事件驱动程序设计(英语:Event-driven programming)是一种电脑程序设计模型。这种模型的程序运行流程是由用户的动作(如鼠标的按键,键盘的按键动作)或者是由其他程序的消息来决定的。相对于批处理程序设计(batch programming)而言,程序运行的流程是由程序员来决定。批处理(batch)的程序设计在初级程序设计教学课程上是一种方式。然而,事件驱动程序设计这种设计模型是在交互程序(Interactive program)的情况下孕育而生的。

事件驱动程序可以由任何编程语言来实现,然而使用某些语言来撰写会比其他的语言来的简单。有些集成开发环境(简称IDE)也会影响实现事件驱动程序设计的难易程度。有的 IDE 会使的开发工作变的很简单,有的则否。

取代传统上一次等待一个完整的指令然后再做运行的方式,事件驱动程序模型下的系统,基本上的架构是预先设计一个事件循环所形成的程序,这个事件循环程序不断地检查目前要处理的信息,根据要处理的信息运行一个触发函数进行必要的处理。其中这个外部信息可能来自一个目录夹中的文件,可能来自键盘或鼠标的动作,或者是一个时间事件。

对一个事件驱动(event driven)系统进行程序设计,因此可以视为改写系统默认触发函数的行为,来符合自己需要的一种动作。输入的事件可以放进事件循环或者是经由已经注册的中断处理器来与硬件事件交互;而许多的软件系统使用了混和这两种技术的处理。预先设计好的算法确定了一件事,那就是当他们被需要的时候,就会在适当的时机被触发。也因此提供了一个模拟中断驱动环境(interrupt driven environment)的软件抽象架构。事件驱动程序设计基本上包含了许多小程序片段,这些小程序片段被称为事件处理器(英语:event handler)并且被用来回应外部的事件与分发事件。通常尚未被事件处理器处理的事件,都会被系统放在一个称为事件队列的数据结构中,等待被处理。

许多情况下,事件处理器可以自己触发事件,因此也可能形成一个事件串(英语:event cascade)。事件驱动程序设计的着重于弹性以及异步化上面,并且企图尽可能的modeless。 图形用户界面这类程序就是典型的事件驱动设计方式。

计算机操作系统是事件驱动程序的典型示例。在操作系统的最底层,中断处理器的动作就像是硬件事件的直接处理器,搭配着 CPU 运行分配事件规则动作。对软件进程而言,基本上操作系统可视为一个事件分配器,发送数据和软件中断给用户自己写的软件进程。

下面是两个数相加的示例,分别用批量版本与事件驱动版本来撰写


相关

  • 地源热泵系统可持续发展主题可再生能源主题环境主题地源热泵系统以岩土体、地下水或地表水为低温热源,由水源热泵机组、地热能交换系统、建筑物内系统组成的供热空调系统。根据地热能交换
  • 瑞茜·威瑟斯彭劳拉·珍妮·瑞茜·威瑟斯彭(英语:Laura Jeanne Reese Witherspoon,1976年3月22日-),美国女演员,以演出电影《律政俏佳人》、《一往无前》及《走出荒野》等著名,《一往无前》更令她
  • 中华民国流亡台湾中华民国流亡政府论是中华民国政府统治台湾的一种地位论述,是基于台湾地位未定论对于中华民国政府在台湾的定位。该观点认为,中华民国政府在1949年被中国共产党击败后,从中国流
  • 长隆酒店长隆酒店是中华人民共和国首家按照五星级标准建造的生态式主题酒店,位于广东省广州市番禺区迎宾路,毗邻香江野生动物世界与长隆欢乐世界。长隆酒店建筑面积超过8万平方米,于200
  • 陈玉蓉暴走妈妈,真实姓名陈玉蓉,湖北武汉人。其子叶海斌患有肝脏疾病,陈玉蓉因患有脂肪肝而不能将自己的肝脏移植给儿子。于是她在2009年2月18日—10月每天坚持在武汉市江岸区谌家矶
  • 邻苯二甲酸二异丁酯邻苯二甲酸二异丁酯(Diisobutyl phthalate,DIBP)可由异丁醇和邻苯二甲酸酐进行酯化反应来制备。结构式为C6H4(COOCH2CH(CH3)2)2。折射率为1.488-1.492(20 ℃,D)。DIBP是无味增塑剂,
  • 肖肖尼国家森林肖肖尼国家森林(英语:Shoshone National Forest,/ʃoʊˈʃoʊniː/)是美国首个受联邦保护的国家森林,面积约2.5 × 106英亩(10,000平方千米),地处美国怀俄明州。它原先是黄石公园
  • 小游戏小游戏,指相对于大型电子游戏而言的、体积较小的游戏软件,或是是指包含在另一个游戏内、或是附加在任何形式的显示器内的游戏,小游戏总是比包含它的游戏要来得更小或更简单。随
  • 罗津港站罗津港站(朝鲜语:라진항역/羅津港驛  */?)是朝鲜民主主义人民共和国罗先特别市的一个铁路车站,属于罗津港线。罗津港线
  • 奥德里斯·若瑟·巴契基斯奥德里斯·尤奥扎斯·巴契基斯(立陶宛语:Audrys Juozas Bačkis;1937年2月1日-)是立陶宛籍天主教司铎级枢机及维尔纽斯总教区荣休总主教。奥德里斯于1937年2月1日在立陶宛第二大