在主线程idhttp get 一个地址,会卡1秒,如果那个地址大一点会卡2-3秒, 我需要循环的下载..老是卡不是办法.. 然后听说用线程可以解决.于是找到了如上代码, 可以,成功了.主线程不卡了,但是运行久了就出错.. 听前辈和网上说直接在线程用控件就会出错.即使当时不错,长了就出错。. 请问怎么解决? 用Synchronize? 不会..用了Synchronize是调用一个过程,然后调用的还是主线程里的控件? 那不还是卡... 求方法,代码,
更多0
分享到:
id="google_ads_iframe_/8456/IDG.CN_B2B_youkuaiyun.com_0" title="3rd party ad content" name="google_ads_iframe_/8456/IDG.CN_B2B_youkuaiyun.com_0" width="728" height="90" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom;">
| ||
#1 得分:0
回复于: 2010-04-09 13:15:17
你可以把IDHTTP的连接时间设长点
我都是自己写SOCKET去实现HTTP的操作 | |
![]() |
#2 得分:0
回复于: 2010-04-09 13:19:20
谢谢建议, 但是我遇到问题就是不停的GET呵呵,线程弄好了估计就解决了 用了线程不卡了,就是长了会出错.往上说什么什么同步什么什么Synchronize |
![]() |
#3 得分:0
回复于: 2010-04-09 13:24:33
在线程里动态创建IDHTTP
| ||
![]() |
#4 得分:0
回复于: 2010-04-09 13:25:01
你目前这种方式和不用线程是一样的,线程一点作用都没起到。
|
![]() |
#5 得分:0
回复于: 2010-04-09 13:41:17
这是我以前写的一个例子,你可以参考线程部分,使用回调函数完成。
参考 |
#6 得分:0
回复于: 2010-04-09 14:32:05
........................
| |
#7 得分:0
回复于: 2010-04-10 20:55:39
| |||
#8 得分:0
回复于: 2010-04-10 21:37:53
更正一下上面的线程函数内的代码:
| |||
#9 得分:0
回复于: 2010-04-10 23:06:14
每天回帖即可获得10分可用分!
| |
![]() |
#10 得分:100
回复于: 2010-04-11 11:08:19
在线程中访问主线程的VCL是有极大风险的,你的这个程序,完全可以在子线程中创建TIDHTTP,收到内容后发消息给主线程通知,具体代码:
在我本机调试通过 | ||
![]() |
#11 得分:0
回复于: 2010-07-17 01:08:16
用Synchronize界面确实很卡.
|