胡姓女孩好听的名字:PowerBuiler multithread programm

来源:百度文库 编辑:九乡新闻网 时间:2024/05/09 06:43:05
 

PowerBuilder实现多线程

建立窗口对象w_chkframe并定义实例变量

uo_jig iuo_jigA
uo_jig iuo_jigB
uo_jig iuo_jigC
uo_jig iuo_jigD
uo_jig继承uo_thread,uo_jigA、uo_jigB、uo_jig、Cuo_jigD继承uo_jig。

窗口对象w_chkframe的open事件中注册四个jig对象

ler_share = sharedobjectregister("uo_jigA","ObjectJigA")
ler_share = sharedobjectregister("uo_jigB","ObjectJigB")
ler_share = sharedobjectregister("uo_jigC","ObjectJigC")
ler_share = sharedobjectregister("uo_jigD","ObjectJigD")

窗口对象w_chkframe的close事件中注销四个jig对象

ler_share = sharedobjectunregister("uo_jigA","ObjectJigA")
ler_share = sharedobjectunregister("uo_jigB","ObjectJigB")
ler_share = sharedobjectunregister("uo_jigC","ObjectJigC")
ler_share = sharedobjectunregister("uo_jigD","ObjectJigD")

在四个jig数据窗口的click事件中,分别实例化四个jig对象,并异步调用四个jig对象的threadfunc事件

ler_share = sharedobjectget("ObjectJigA",iuo_jigA)
iuo_jigA.post event threadfunc(iuo_interfaceobjectA)

ler_share = sharedobjectget("ObjectJigB",iuo_jigB)
iuo_jigB.post event threadfunc(iuo_interfaceobjectB)

ler_share = sharedobjectget("ObjectJigC",iuo_jigC)
iuo_jigC.post event threadfunc(iuo_interfaceobjectC)

ler_share = sharedobjectget("ObjectJigD",iuo_jigD)
iuo_jigD.post event threadfunc(iuo_interfaceobjectD)

硬件、软件安装

将PCI-2513、PCI-4301安装到电脑的两个PCI插槽中,一般的电脑只有两个合适的PCI插槽,我们现在处理的检测程序需要至少3个最多6-7个PCI扩展插槽,如果主板备有足够的PCI扩展插槽,那么就可以不使用扩张器设备,从而节约很大一笔费用。
在Interfacce公司官网上下载两个PCI插卡的驱动及应用安装程序:
分别为PCI-4301:gpc4301_031134,PCI-2513:gpc2000_023140。按照安装向导正确安装后,两个PCI插卡及所提供的应用程序就可以使用了。

使用GPIB类PCI插卡

PCI-4301的动态链接库为"D:\WINDOWS\system32\gpc4304.dll",此为高级功能版,如使用标准功能版,则动态链接库为D:\WINDOWS\system32\gpc43042.dll。注意一般的驱动路径都在C:\WINDOWS\system32\,注意操作系统安装的盘符。
定义不可视用户对象uo_gpib。
定义局部外部函数Function ulong PciGpibExInitBoard(Integer BoardNo,ulong hWnd) LIBRARY "D:\WINDOWS\system32\gpc4304.dll"

定义子类继承uo_gpib,分别为uo_gpiba、uo_gpibb、uo_gpibc、uo_gpibd。
uo_jig定义实例变量uo_gpib,uo_jiga的constructor中创建uo_gpiba的实例:iuo_gpib = create uo_gpiba
uo_jiga线程事件threadfunc中添加代码:
nRet = iuo_gpib.pcigpibexinitboard( BoardNo,0)
nRet = iuo_gpib.PciGpibExFinishBoard( BoardNo)