powerbuilder 中使用线程的方法

博客展示了一段代码,包含对象变量声明、新线程创建、实例引用、参数设置及线程中止等操作。声明了对象变量,通过相关函数创建和引用线程,设置参数后执行操作,最后中止线程。

//声明对象变量 


ccuo_thread lccuo_thread 
//创建新线程 
SharedObjectRegister ('ccuo_thread' ,'thread_center' ) 
//引用实例 
SharedObjectGet ('thread_center' ,lccuo_thread )  
nvo_param param
param = create nvo_param
param.text = "hello world "
param.w =  parent
param.idx = 0  ; 

lccuo_thread.post of_center (param ) 
  
//中止线程 

  SharedObjectunRegister ('thread_center' ) 
 
 
 
  

PowerBuilder是美国Powersoft公司于90年代初推出的基于客户/服务器体系结构的面向对象的数据库开发工具。该产品一上市即深受广大应用开发人员的喜爱,因此迅速占领市场,目前几乎已发展成为前端工具的事实上的标准。著名数据库软件公司Sybase收购Powersoft公司以后,PowerBuilder通过Sybase较早地介绍给了中国用户。 1994年Powersoft公司又在北京建立办事处,PowerBuilder便广泛为中国的用户接受和使用。所开发的应用已广泛地应用于金融、证券、邮电、商业等各个部门和各个领域,并发挥着巨大的作用。据有关方面统计,PowerBuilder在中国的市场占有率目前已达40%左右。 Sybase公司及其代理商在从事PowerBuilder的销售、培训和技术支持等服务时,经常发现由于用户来自各个行业,专业背景不同,开发经验不同,再兼之国内的有关书籍和资料较少,因此造成用户对Power-Builder的很多特性不甚了解, 在进行深入开发时遇到了很多困难。鉴于此,开办PowerBuilder应用开发系列讲座,本讲座面向正在使用PowerBuilder进行开发的读者, 主要讨论使用PowerBuilder进行数据库应用开发的经验和开发技巧。<br><br> * 第一讲: 数据库的事务管理<br> * 第二讲: 调用Windows的动态链接库<br> * 第三讲: PowerBuilder面向对象的程序设计<br> * 第四讲: 并发控制<br> * 第五讲: DataWindow的打印输出<br> * 第六讲: DataWindow的打印输出(续)<br> * 第七讲: 利用SetActionCode函数控制DataWindow<br> * 第八讲: 分布式PowerBuilder设计<br> * 第九讲: DataWindow的数据缓冲区<br> * 第十讲: 用DataWindow实现对多表的修改<br> * 第十一讲:游标的使用<br> * 第十二讲:预装入对象<br> * 第十三讲:资源管理<br> * 第十四讲:PowerBuilder的事件<br> * 第十五讲:PowerBuilder的事件(续)<br> * 第十六讲:生成可重用的数据窗口<br> * 第十七讲:编写行选择函数<br> * 第十八讲:优化数据库查询<br> * 第十九讲:使用PowerBuilder另外500个函数(上)<br> * 第二十讲:使用PowerBuilder另外500个函数(中)<br> * 第二十一讲:使用PowerBuilder另外500个函数(下)<br> * 第二十二讲:树型视图控件<br> * 第二十三讲:函数与事件<br> * 第二十四讲:Install Builder 的使用方法<br> * 第二十五,二十六讲:一个代码维护的应用程序(上、下)<br> * 第二十七讲:在 PowerScript 脚本中访问数据窗口中的数据<br> * 第二十八讲:开发和运行环境中的动态连接库<br> * 第二十九讲:如何使用 BLOB 数据类型<br> * 第三十讲:在数据窗口中使用滚动条<br> * 第三十一讲:在数据窗口中使用滚动条(续)<br> * 第三十二讲:为下拉式数据窗口建立缓冲区<br> * 第三十三讲:为下拉式数据窗口建立缓冲区(续)<br> * 第三十四讲:布式事务处理<br> * 第三十五讲:布式应用开发<br> * 第三十六讲:FUNCky 的使用<br> * 第三十七讲:PFC介绍<br> * 第三十八讲:PowerBuilder 6.0 简介<br> * 第三十九讲:图形用户界面设计<br> * 第四十讲:图形用户界面设计(续)<br>
注意事项: 1、主进程传入的对象或变量不管是不是ref线程内操作传入的引用都会影响主进程的对象或变量,且对象只能是nonvisualobject类型的。 2、基础变量如long等等都不能传引用ref会运行会报错 3、SharedObjectUnregister只是把SharedObjectDirectory中的去掉,实际内存不会释放必须destroy 4、主进程不能直接访问线程中的变量和对象,可以通过处理类私有的办法处理。 5、千万注意释放线程的时候一定要把线程里面的资源释放完,不然百分百卡死。比如一个线程里面有一个timing的计时器,如果不先stop(),直接destroy,百分百卡死。如果连接数据库或者其他接口时千万注意了!!!千万要在uf_stop()(此例子中的释放预留方法)里面把所有的资源都释放干净,资源都释放干净,源都释放干净,都释放干净,释放干净,放干净,干净,净…… 大体设计思路: 1、在主进程中建立一个“任务信息类”数组,其中包含“任务线程类”,一个任务对应一个线程。 2、在主进程中建立一个“任务管理类”,负责处理任务信息类。 简单举例: 1、新建1个“任务管理类”,再新建N“任务信息类”,将“任务信息类”赋值完成加入“任务管理类”,并创建一个“任务线程类”,此时线程开始running。 2、“任务线程类”中有一个内部timing类,监控自己是否执行完成,会改标志。“任务管理类”也有一个timing监控“任务信息类”和“任务线程类”的情况,把完成的结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿峰的编程博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值