标题:VFP获取网络信息为什么会卡?
只看楼主
LJY6813
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-9-18
结帖率:0
已结贴  问题点数:10 回复次数:4 
VFP获取网络信息为什么会卡?
在登陆表单的INIT里写入如下语句,用于获取网络上的天气信息:
Local lcRemoteUrl,lcRemoteFile,lcLocalFile

lcRemoteFile="http://www. &&CHXX0008表示:北京
lcLocalFile = "&CWLSPATH/weather.txt"
Declare Integer DeleteUrlCacheEntry In Wininet.Dll String szUrl
Declare Integer URLDownloadToFile In urlmon.Dll Integer pCaller,String szURL,;
    String szFileName,Integer dwReserved,Integer lpfnCB
*=DeleteUrlCacheEntry(lcRemoteUrl) &&清理缓存

If URLDownloadToFile(0,lcRemoteFile,lcLocalFile,0,0)<>0
    Messagebox('读取数据失败!',48,'信息提示')
    Return
Endif
但是在执行时,遇到网络慢的时候,会卡上好长时间,而且不能操作其他WINDOWS程序,会使VFP程序无法响应,问各位大侠有什么好办法?我看到DOEVENTS命令,它能否能解决,但是怎么应用,请给举例讲讲。
还有一个问题,就是上面的程序在6.0和9.0里执行会有差别呢,在6.0里会先显示表单,然后等待程序获取天气信息,而在9.0里会先获取天气信息,获取完再显示表单,这是为什么呢?
搜索更多相关主题的帖子: 天气 北京 网络 信息 清理 
2015-05-14 22:34
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:4 
VFP是单线程的,不能同时做两件事,必须一件一件地处理,所以就会“卡”。

活到老,学到老! http://www. E-mail:hu-jj@
2015-05-15 08:10
LJY6813
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-9-18
得分:0 
回复 2楼 hu9jj
呵呵,你也在这里,那有什么办法解决不,比如那个DOEVENTS命令,或者是计时器控件
2015-05-15 11:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:4 
晓得使用这类API,就应该查阅了完整的资料满足需求再用。像这类http API,一定有异步函数和方法,我没用过,但凭道理上就知道一定有,自己查吧。

授人以渔,不授人以鱼。
2015-05-15 11:56
千分之
Rank: 2
等 级:论坛游民
帖 子:28
专家分:17
注 册:2015-5-16
得分:4 
路过
2015-05-18 14:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-445305-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.104510 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved