- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
pb多线程开
PB目前版本暂时还不支持多线程开发,多线程是指一个程序内部同时执行的多个流程﹐与单线程相比﹐它至少有两个方面的优点﹕第一﹐它可以更好地利用系统资源﹐比如CPU﹐若一个线程因I/O操作受阻﹐另一个线程仍可利用CPU来执行﹔第二﹐它更好地满足了客户的需求﹐因为挑剔的客户希望你开发的程序在显示动画的同时还能播放音乐﹑显示文件﹑下载网络文件等﹐这是单线程应用程序无法完成的。目前﹐支持多线程的开发工具主要有﹕Java﹑VC﹑Delphi和C++Builder。 ? ? ? ? ? 多线程强调的是一个进程内部有多个流程在同时执行﹐同时执行的概念相当于PB分布式计算中的异步处理。也就是说﹐只要我们在一个程序内部实现了异步处理﹐就相当于实现了多线程。分析至此﹐下一步该怎幺做就不言而喻了﹕在一个应用程序内部实现分布式计算﹐使用服务器推送技朮﹐异步执行共享对象中的函数。 ? ? ? ? ? 下面就编写一个Demo﹐介绍在PB中如何利用分布式计算技朮来开发多线程应用程序﹐uo─thread1和uo─thread2是类用户对象uo─thread的两个实例﹐uo─thread的功能是给实例变量li─Count自加5秒﹐自加的同时向中间对象uo─argv1和uo─argv2发送ue─thread消息。两个中间对象的功能是把ue─thread消息转化为ue─thread1和ue─thread2后发给主窗口w─main。 ? ? ? 主窗口接收到ue─thread1消息后﹐显示uo─thread1中自加变量的值﹐接收到ue─thread2后﹐显示uo─thread2中自加变量的值。在单线程中﹐uo─thread1先执行﹐5秒钟后uo─thread2开始执行﹐因此﹐前5秒内主窗口只能收到ue─thread1消息﹐后5秒内只能收到ue─thread2消息。在多线程中﹐uo─thread1和uo─thread2同时执行﹐因此w─main可以不断地收到ue─thread1和ue─thread2消息。 ? ? ? ? ? 1﹒设计用户对象uo─thread ? ? ? ? ? 新建一个类用户对象﹐命名为uo─thread﹐添加如下两个实例变量﹕ ? ? ? ? ? NonVisualObject ? inv─arg ? ? ? ? ? Long ? li─Count ? //自加变量 ? ? ? ? ? 创建如下三个用户函数﹕ ? ? ? ? ? □uf─start()﹐功能是﹕完成自加5秒并向中间对象发送ue─thread消息。脚本为﹕ ? ? ? ? ? Time ? t0 ? ? ? ? ? t0= ? Now() ? //获取当前时间 ? ? ? ? ? Do ? While ? SecondsAfter(t0,Now())〈=5 ? ? ? ? ? li─Count++//实例变量自加5秒 ? ? ? ? ? inv─arg.TriggerEvent(′ue─thread′) ? ? ? ? ? //向中间对象发送ue─thread消息 ? ? ? ? ? Loop ? ? ? ? ? □uf─getcount()﹐功能是﹕获取自加变量的瞬间值。其脚本为﹕ ? ? ? ? ? Return ? li─Count ? //返回实例变量 ? ? ? ? ? □uf─setparent(NonVisualObject ? nv─arg)﹐调用时﹐使用中间对象为参数。脚本为﹕ ? ? ? ? ? inv─arg=nv─arg ? ? ? ? ? //用中间对象给实例变量赋值 ? ? ? ? ? 2﹒设计中间对象uo─argv1和uo─argv2 ? ? ? ? ? 新建一个类用户对象﹐命名为uo─argv1﹐添加如下实例变量﹕ ? ? ? ? ? Window ? win─arg ? ? ? ? ? 创建用户函数uf─setparent(Window ? w─argv)﹐调用时﹐用主窗口作为参数。其脚本为﹕ ? ? ? ? ? win─arg=w─argv ? ? ? ? ? //用主窗口对象给实例变量赋值 ? ? ? ? ? 声明用户事件ue─thread﹐用于对uo─thread1发出的uo─thread消息进行响应﹐其脚本为﹕ ? ? ? ? ? win─arg.TriggerEvent(〞ue─thread1〞) ? ? ? ? ? //向主窗口发送ue─thread1消息 ? ? ? ? ? uo─argv2和u
您可能关注的文档
- CP 合作原.ppt
- CPA 《会》 郑庆华 基础班 第10章所有者权益2.pdf
- NBK陶板-rightShelf_Installation_Instructions_HD.pdf
- CPA《会计第八章资产减值-答案.pdf
- CPA考试会科目学习笔记-第十一章收入、费用和利润05.pdf
- CP-P00控制计划---开料(01-1).pdf
- CPA考试税科目讲义_051_1003_j.pdf
- CPA《会计第十二章财务报告作业答案.pdf
- CPA考试会科目学习笔记-第二十四章资产负债表日后事项02.pdf
- CPA考试会科目学习笔记-第十一章收入、费用和利润01.pdf
- 湖南省永州市选调生考试(行政职业能力测验)综合能力测试题含答案.docx
- 江西省南昌市选调生考试(行政职业能力测验)综合能力测试题及参考答案.docx
- 江苏省镇江市选调生考试(行政职业能力测验)综合能力题库及参考答案1套.docx
- 浙江省衢州市选调生考试(行政职业能力测验)综合能力题库一套.docx
- 2025年枣庄职业学院单招语文测试题库参考答案.docx
- 湖南省株洲市行政职业能力测验题库及答案1套.docx
- 重庆市南充市行政职业能力测验题库最新.docx
- 河南省濮阳市行政职业能力测验题库参考答案.docx
- 浙江省宁波市事业单位招聘考试(职业能力倾向测验)题库学生专用.docx
- 湖北省黄冈市行政职业能力测验题库完美版.docx
文档评论(0)