PB采用共享对象实现伪多线程
如何控制伪线程的运行时? 伪线程是否有特定的运行时间片,伪线程的时间片用完了就会自动停止吗?
问题描述:
在调试PB 多线程的时候,共享变量对应了一个本地的窗口W,将这个窗口W的句柄传给其他的进程A,实现伪线程与进程A之间的交互。
进程A通过发消息给伪线程中的窗口W 的事件,然后处理一些业务逻辑。
伪线程中的窗口W的接收消息处理事件中的代码不能debug跟踪进去,只好采用写日志的方式来记录伪线程到底走到哪一步了。
结果发现,伪线程总是容易在一个固定的代码点终止了(这个代码点是一个调用 send() 函数写的语句) ,也不是每一次都在这个点终止,时不时的发生。 不过 一旦在伪线程中被终止了,PB的主线程也不响应了,造成了程序的卡死。
补充:
在网上查了一下资料,提到:PB程序的主线程可以直接执行在共享对象中的方法(通过使用SharedObjectGet函数对一个共享对象进行引用),然而在调用线程或调用对象中,共享对象不能引用任何对象。
里面的这一句:“在调用线程或调用对象中,共享对象不能引用任何对象” 指的是什么? 是否说这个共享对象只能调用自己的一些方法或引用自己的实例变量之类的,并不能引用其它类的服务?
求高手解答。 不甚感激。