《程序设计》实验报告实验八:多线程和并行程序设计.docx
-
资源ID:1105264
资源大小:12.06KB
全文页数:3页
- 资源格式: DOCX
下载积分:5金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
《程序设计》实验报告实验八:多线程和并行程序设计.docx
西华大学实验报告(理工类)开爆学院及实验上,实收时间:年月日学生姓名学号成绩学生所在学院年的专业/班课程名称课程代码实验项目名称JfcIftAt多线程和并行程序设计项目代码指导效如事目学分一、实Ift目的1.了解多线程和并行的基本概念.2、掌握多战程的创建方法。3、学会后动线程并执行命令。4、学会使用BackGroundWorker类。5、了解异步编程基本概念以及学会施于委托的齐步编程.二、实验原理异步编程的基咄是委托与多线程.基于委托的异步编程,BeginInvoke是实现异步调用的核心.NETFramework允忤并步圜用任何方法.为此,应定义与要Iff1.用的方法具有相同签名的委托:公共语古运行时会自动使用适当的签名为该委托定义Bcgin!moke和EmnUVUke方法。BeginInvoke方法启动异步调用.该方法与需要异步执行的方法具有相同的参数,还有另外两个可选多数。第一个参数是一个AsyncCa1.1.back委托,该委托引用在异步调用完成时要调用的方法。第二个参数是一个用户定义的时象,该对象将信息传递到回调方法.BeginInvoke立即返回,不等待异步调用完成。Begin1.nvoke返I可一个IAsyncResu1.t.后者可用于监视异步调用的进度.End1.nvoke方法检索异步弱用的站果。在调用BeginIMOke之后珈时可以调用该方法,如果异步调用尚未完成,则EndInvoke会一直阻止调用线程.宜到异步调用完成.End1.nvoke参数包括需要异步执行方法中的OUt和ref参数(在ViSUa1.Basic中为ByRef和ByRef)以及由BeginInvoke返回的IAsyncKesu1.t.有四种使用BeginInvoke和End1.nvoke进行异步调用的常用方法.调用了BOgin1.nYOkG后,可以:1 .进行某段操作,然后调用End1.nvoke一直阻塞到调用完成.2 .使用IAsyncResu1.t.AsyncVaitHand1.e获取WaitHand1.e.使用它的IaitOne方法将执行一直阻塞到发出WaitHand1.e信号,然后调用EndInvoke.这里主要是主程序等待异步方法,等待异步方法的结果.3 .轮血由BeginInVoke返回的IASynCReSU1.t,IASynCReSU1.t.ISCO1.nPeted确定异步调用何时完成,然后调用EndInvoke44 .将用于回园方法的委托传递给BeginInvoke.该方法在异步两用完成后在ThreadpoC1.线程上执行,它可以调用End1.nvoke(这是在覆制装换回调函数里.面IAsyncResu1.t.AsyncState(BeginInvoke方法的最后一个参数)成委托,然后用委托执行EndInvoke.需要注意的是,必须保证始终在异步调用完成后调用EndInvokeo从实际使用效果来百.只有第四种使用回词函数的方法才能好真正意义上不阻塞.前三种方法都容易阻塞主线程.从而导致主程序界面“假死”的情况。三、实验设备、仪及材料WindgS环境计算机、ViSUaIStudio2012软件四、实验步(按照实际操作过程)1、要求:利用S语吉验证患于委托的弁步编程模式.2、在VS2012中建立一个控制台应用程序,3,参考教材221页输入代码.4、运行并验证.五、实殴过程记录(数据、图表、计算等)六、实Ifc结果分析及问1讨论1、具体来说,该实毅当中的程序用的四种当中的哪1种异步调用方法?2,异步御用有什么优点?