多线程如何实现

xmtotti 2016-12-14 12:44:08
如何实现多线程效果,不让程序卡死!
...全文
679 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldMobile 2016-12-14
  • 打赏
  • 举报
回复
参考链接:http://blog.csdn.net/namgking/article/details/3421359
WorldMobile 2016-12-14
  • 打赏
  • 举报
回复
PB的多线程用到的就几个函数 SharedObjectRegister() SharedObjectGet() SharedObjectUnregister() 用SharedObjectRegister(Classname,Instancename) PB帮助文件是Classname和Instancename,即类名和实例名。 用SharedObjectGet(instancename , objectinstance) 将实例名和具体的对象实例绑定,然后就可以通过对象实例POST 出发类里预定义的过程或函数。比如在类中预定义了uo_add函数,可以objectinstance.post uo_add 用SharedObjectUnregister(instancename) Unregisters a user object that was previously registered. 注销掉用户实例对象 eg. 1、定义一个nvo_multithread 添加add(int ai_n)函数 int li_i int li_result = 0 sleep(5) For li_i= 0 To ai_n li_result+=li_i Next messagebox("",string(li_result)) 2、定义一个窗口,在Instance Variables定义变量:nvo_multithread invo_thread 3、在Open事件中的代码: invo_thread = Create nvo_multithread SharedObjectRegister ("nvo_multithread" ,"thread1" ) SharedObjectGet ("thread1" , invo_thread) 4、在Close事件中的代码: Destroy invo_thread SharedObjectUnregister("thread1") 5、可以在一个按钮的Click事件中调用: int i invo_thread.post add(i) 调用后,就可以异步执行了 注意点:如果想要多个线程一起执行,就一定要多注册几个实例对象。即多执行几次2、4步。可以用数组来做。 比如我在Instance Variables定义成nvo_multithread invo_thead[5] Open事件:For li_ii= 1 to 5 invo_th[li_ii] = Create nvo_multithread SharedObjectRegister( "nvo_multithread" , "tthread" + string(li_ii) ) SharedObjectGet ("tthread" + string(li_ii) , invo_th[li_ii] ) Next Close事件:For li_ii= 1 to 5 Destroy invo_th[li_ii] SharedObjectUnregister("thread" + string(li_ii)) Next
pcwe2002 2016-12-14
  • 打赏
  • 举报
回复
http://blog.csdn.net/gaoqiangz/article/details/39613559 这个文章可以看看

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧