DELPHI 多线程 IDHTTP提交问题

delphi中,我想使用多线程用idhttp提交数据包,例如:varidhttp:tidhttp;psdata:string;beginidhttp:=tidhttp.C... delphi中,我想使用多线程用idhttp提交数据包,例如:

var
idhttp:tidhttp;
psdata:string;
begin
idhttp:=tidhttp.Create(nil);
idhttp.post('http://xxx.xxx.xxx',psdata);
end;
提交100次。
我想限制线程数为特定的值。
我所需要的是创建5个线程,完成一个再创建一个,线程总数不大于五。
我在网上找到个多线程的,但是不符合我的要求,它的没有线程数的控制,假如我设置延时为1秒的话,那线程就是1秒创建一个,如果10秒内线程还没结束的话,那就有10个线程在工作了,这不是我想要的。
高分求代码,而不是大概方法。。。
展开
 我来答
kcxnvbdbd
2010-11-12 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:615万
展开全部
最简单知纳的方式:

一个全局整形变量count,初始盯尘化为凯猛禅 0;

timer中检测 count,如果count < 5 则生成一个线程
每次增加一个线程,count + 1

线程执行完 count - 1;
chunlizh
2010-11-12 · 超过27用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:78.6万
展开全部
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type

TMyThread = class(TThread)
private
{ Private declarations }
procedure AddTh;
procedure DecTh;
protected
procedure Execute; override;
end;

TForm1 = class(TForm)
Edit1: TEdit;
Timer1: TTimer;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
ThCounter:integer;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ThCounter:=0;
end;

{ TMyThread }

procedure TMyThread.AddTh;
begin
Form1.ThCounter:= Form1.ThCounter +1;
Form1.Edit1.Text:= intToStr(Form1.ThCounter);
end;
procedure TMyThread.DecTh;
begin
Form1.ThCounter:= Form1.ThCounter -1;
Form1.Edit1.Text:= intToStr(Form1.ThCounter);
end;
procedure TMyThread.Execute;
var
i:integer;
begin
inherited;
Synchronize(AddTh);
sleep(10000);

Synchronize(DecTh);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
th:TMyThread;
begin
if(Form1.ThCounter<5) then
begin
th:= TMyThread.Create(true);
th.FreeOnTerminate:=true;
th.Resume();
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
end;

end.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式