PB的多线程

来源:百度文库 编辑:神马文学网 时间:2024/04/27 23:25:47
最近还在学习PB,有点郁闷,还是不太喜欢PB啊 上周五看了一下PB,感觉还简单。本来已经动手,但因为周五下午有事出去,所以拖到今天。。 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 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/namgking/archive/2008/12/01/3421359.aspx