Delphi多线程检测代理IP是否可用 30
procedureTForm1.btn1Click(Sender:TObject);vari:Integer;s:string;beginfori:=0toListBox...
procedure TForm1.btn1Click(Sender: TObject);
var
i: Integer;
s:string;
begin
for i:=0 to ListBox1.Count -1 do
begin
s:=ListBox1.Items.Strings[i]; //获得listbox每一行的数据
CheckIP[i]:= TCheckIP.Create(False,s,i +1); 将Listbox每一行的数据传入构造函数
Sleep(15);
end;
end;
这里我实现了同时检测整个listbox内的代理IP是否可用.
但是,我想达到的目的是按了btn1按钮后开启5个线程,然后等待这五个线程运行完后
再接着运行下5个线程,一直到将listbox内的代理IP都验证完,线程终止.
不知道如何达到这种效果,请知道的朋友说一下怎么解决这个问题.
线程部分就不用贴了吧,就是使用idhttp.proxyparams这个赋予代理IP和端口后尝试打开一下网页,判断是否可以打开而已
回复billswhot:
我的IDHTTP是在线程中使用动态创建的,有创建有释放,不是在主线程中使用的。 展开
var
i: Integer;
s:string;
begin
for i:=0 to ListBox1.Count -1 do
begin
s:=ListBox1.Items.Strings[i]; //获得listbox每一行的数据
CheckIP[i]:= TCheckIP.Create(False,s,i +1); 将Listbox每一行的数据传入构造函数
Sleep(15);
end;
end;
这里我实现了同时检测整个listbox内的代理IP是否可用.
但是,我想达到的目的是按了btn1按钮后开启5个线程,然后等待这五个线程运行完后
再接着运行下5个线程,一直到将listbox内的代理IP都验证完,线程终止.
不知道如何达到这种效果,请知道的朋友说一下怎么解决这个问题.
线程部分就不用贴了吧,就是使用idhttp.proxyparams这个赋予代理IP和端口后尝试打开一下网页,判断是否可以打开而已
回复billswhot:
我的IDHTTP是在线程中使用动态创建的,有创建有释放,不是在主线程中使用的。 展开
1个回答
展开全部
id控件的socket经常会死,所以不能这样做,应该把他们分配到不同的程序中然后分别调用,如果线程死了就杀掉他们,这样做才能保证稳定运行,否则不多久你的多线程就都死了不动了杀也杀不掉,因为你的id控件是在主程序中的无法重新建立
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询