- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
2021/8/11;第八章基于事件驱动的程序设计技术;第八章基于事件驱动的程序设计技术;8.1基于事件的编程思想;8.1基于事件的编程思想;8.2委托;8.2.1委托(delegate)的概述;8.2.1委托的概述;8.2.2委托的声明、实例化与使用;8.2.2委托的声明、实例化与使用;例如,假设有如下两个方法:
intProduct(intx,inty)
{
returnx*y;
}
intAverage(intx,inty)
{
return(x+y)/2;
}
Calculatea=newCalculate(Product);
Calculatetemp=a;
a=b;
b=temp;;8.2.2委托的声明、实例化与使用;8.2.2委托的声明、实例化与使用;8.2.2委托的声明、实例化与使用;8.2.3多路广播与委托的组合;多路广播示例;8.3事件;8.3.1事件的声明;8.3.1事件的声明;8.3.1事件的声明;例如:先自定义委托,再定义事件;例如:使用泛型EventHandler定义事件;8.3.2事件的预订;例如:预订事件;8.3.2事件的预订;8.3.3事件的引用;例如:引用事件;案例分析;小结:事件驱动编程;8.4基于事件的Windows编程;8.4.1Windows应用程序概述;①轮询机制
特点:事件接收器定期询问事件源是否有它感兴趣的事件发生,以获取事件和解决问题
弊端:事件接收器不知道事件何时发生,必须频繁地访问事件源,以便尽快获取事件。但由于通常事件的发生频率要比轮询的频率小得多,故大部分资源都做了无用功,系统效率低。如果降低轮询的频率,虽然可以增加效率和减少系统的负荷,但造成事件得不到及时处理。;②回调函数机制
在这个机制里,事件源定义回调函数的模板(又称原型),事件接收器实现该函数的实际功能,并让事件源中的回调函数指针指向自己的实际函数。当事件源中的事件发生时,就调用回调函数的指针,这样事件接收器就最先得到了通知并进行处理。
③.NETFramework事件机制
.NETFramework基于委托的事件模型是以回调函数机制为基础的。只是用委托代替了函数指针,这样就降低了编程的难度,而且委托是类型安全的。在运行期间,事件接收器实例化一个委托对象并把它传递给事件源。;2.Windows应用程序项目的组织结构;8.4.2Windows窗体与事件驱动编程;8.4.2Windows窗体与事件驱动编程;8.4.2Windows窗体与事件驱动编程;8.4.2Windows窗体与事件驱动编程;案例分析:P192;课堂练习;(3)下面程序运行后,r的值是?( )
delegateintCall(inta,intb);
staticvoidMain(string[]args)
{
Callf;
f=newCall(Add);
f+=newCall(Sub);
intr=f(5,3);
}
staticintAdd(inta,intb){returna+b;}
staticintSub(inta,intb){returna-b;}
A、2B、5C、8D、无返回值;2021/8/11;2021/8/11
您可能关注的文档
- 黑山学校田超田超教师支持材料.pptx
- 新时代苗族优秀传统文化微课资源的开发利用研究.docx
- 互联网环境下企业金融风险管理分析.docx
- 高校护理教育课程设置现状的调查与分析.docx
- 河南科技大学第十届研究生会换届大会演讲稿(燕根鹏).pdf
- 高校经济学教育问题与对策探讨.docx
- 互联网+背景下基于BYOD的高校混合学习策略研究.docx
- 单元课由vvip ct grace wu创建故事复述谁何时何地什么如何unit 15 lesson 315.pdf
- 说明发现之船t ships of discovery.pdf
- e wing sb control stand assembly layoutyn桥翼控制台装配布局.pdf
文档评论(0)