IDHTTP.Get时界面卡死的解决方法

本文介绍了一种在使用IDHTTP进行网络数据采集时防止界面卡死的方法。通过设置TIdAntiFreezeControl控件和调整相关参数,可以在网络状况不佳时保持程序响应,避免任务执行过程中界面冻结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做了个IDHTTP.get采集网页的时候,网站网络情况不好,界面就卡死了,通过百度发现使用下面的方法可以实现水卡死情况

放一个TIdAntiFreezeControl控件,然后在执行的任务前面加上下面这句即可

IdAntiFreeze1.OnlyWhenIdle:=False;//设置使有反应

比如:


procedure TForm1.Button2Click(Sender: TObject);
var
MyStr:String;
Dcphttp:TIdHTTP;
IsUtf8 :Boolean;
begin
    IdAntiFreeze1.OnlyWhenIdle:=False;//设置使有反应.
    Dcphttp:=TIdHTTP.Create(Application);
    IsUtf8:=False;
  try
    Dcphttp.ReadTimeout:=5000;
    Dcphttp.ConnectTimeout:=5000;
    Dcphttp.HandleRedirects := True;
    Dcphttp.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8';
    Dcphttp.Request.ProxyConnection:='keep-alive';
    Dcphttp.Request.UserAgent := 'Mozilla/5.0';
    MyStr := Dcphttp.Get(Urle+'?SortType=desc&DType=Lastest1Day');
    if IsUtf8 then
      MyStr:= Utf8ToAnsi(MyStr);
      Memo1.Text:=MyStr;
  except
    Showmessage('网络出错!');
    Exit;
  end;
    FreeAndNil(dcphttp);
end;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

再创世纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值