注册 登录
编程论坛 VFP论坛

指点一下:能否用多线程DLL刷新一个比较慢的网页

shonken 发布于 2021-11-29 11:51, 1637 次点击
各位大大:
有个WB控件上的网页刷新比较慢,能否将这个网页的刷新交给一个多线程DLL来刷新,而不影响主程序的后继操作?

最近才开始研究VFP的COM组件,有一点点想法......
8 回复
#2
吹水佬2021-11-29 14:27

只是为看看这个网页吗

VFP编程没有多线程的概念
VFP只是可写出支持多线程应用的COM(DLL)
可以考虑多进程

#3
shonken2021-11-29 14:44
以下是引用吹水佬在2021-11-29 14:27:59的发言:


只是为看看这个网页吗

VFP编程没有多线程的概念
VFP只是可写出支持多线程应用的COM(DLL)
可以考虑多进程

是的,只是刷新网页

程序代码:
Define Class RefreshOLE As Session OlePublic
    Function RefreshXML(cOBJ As VARIANT,cFile As String)
        If Empty(cOBJ.locationURL)
            cOBJ.Navigate2(cFile)
        Else
            cOBJ.Refresh2("REFRESH_NORMAL")
        Endif
    Endfun
    Function Error(nError, cMethod, nLine)
        Comreturnerror(cMethod+'  err#='+Str(nError,5)+;
            '  line='+Str(nline,6)+' '+Message(),_vfp.ServerName)
    Endfun
Enddefine

好像速度差不多.....
#4
加菲猫的VFP2021-11-30 11:16
回复 2楼 吹水佬
多线程VFP也可以搞定啦。
参看此文
https://mp.weixin.
#5
吹水佬2021-11-30 11:33
以下是引用加菲猫的VFP在2021-11-30 11:16:57的发言:

多线程VFP也可以搞定啦。
参看此文
https://mp.weixin.

就如2楼说的:VFP只是可写出支持多线程应用的COM(DLL)
这个应该不算是VFP语言实现的多线程,准确的说是将VFP的COM(DLL)放到其他编程语言实现的多线程环境“借尸还魂”,无疑这也是一个解决在多线程中运行VFP代码的办法。


[此贴子已经被作者于2021-11-30 11:36编辑过]

#6
吹水佬2021-11-30 11:47
其实用VFP语言实现多线程不是绝对不可能,只是有点难度,也没这必要。
在VFP可以直接嵌入机器码,就是在VFP的进程空间直接写入汇编码,在这段代码中实现运行VFP写的函数,这段代码的地址就可以作为线程过程的地址。
这种做法写代码不难,但调试就不易,尤其是处理复杂的事务过程。
说到底还是离不开windows的COM服务

[此贴子已经被作者于2021-11-30 14:44编辑过]

#7
加菲猫的VFP2021-12-01 09:12
目前来说,我社群的狐友产已将此功能,用于图片上传,多线程计算,应用案例非常多了。
#8
sostemp2021-12-01 09:41
以下是引用加菲猫的VFP在2021-12-1 09:12:12的发言:

目前来说,我社群的狐友产已将此功能,用于图片上传,多线程计算,应用案例非常多了。


可以发点案例让大家学习,如果只是说说的话,也不明白,谢谢。
#9
加菲猫的VFP2021-12-01 10:20
回复 8楼 sostemp
我发的链接就有了,照着操作吧。。
1