请问我已经受冬添加了一个线程的文件并在线程当中实现了下载功能。请问怎么能够动态的添加线程。比如我用一个按钮模拟其他捕获到的事件。,点一次添加一个线程,在10个线程之内都能同时下载不同的文件,超过10个就等待
在总线程数小于10的时候自动从等待队列转入下载队列。该如何实现谁能个一个小小例子看看各位不论高手还是新手都来讨论一下,特此邀请斑竹来一起讨论,我的问题从来没有遇见过斑竹参与不知道是为什么。是不是没有斑竹如果我描述的不清楚请各位指出来
在总线程数小于10的时候自动从等待队列转入下载队列。该如何实现谁能个一个小小例子看看各位不论高手还是新手都来讨论一下,特此邀请斑竹来一起讨论,我的问题从来没有遇见过斑竹参与不知道是为什么。是不是没有斑竹如果我描述的不清楚请各位指出来
Var
UnitName,PathName:String;
MyStream:TMemoryStream;
filepath:string;
IDHTTP: TIDHttp;begin
//form1.IDHTTP:= TIDHTTP.Create(nil);
//form1.StatusBar1.Panels[0].Text:='正在下载文件...';
IDHTTP:= TIDHTTP.Create(nil);
MyStream:=TMemoryStream.Create;try
form1.idhttp1.Connect();
except
end; if form1.idhttp1.Connected then
begin
try
form1.IdHTTP1.Get('http://dl_dir.qq.com/qqfile/qq2006beta1.exe',MyStream);
filepath:=ExtractFilePath(ParamStr(0)); MyStream.SaveToFile(filepath+'\DownLoadFiles\11.exe');
MyStream.Free;
showmessage('下载完成!');
except
showmessage('网络出错未能下载完成!');
MyStream.Free;
Exit;
end;end;
end;constructor TMyDownLoad.Create();
beginFreeOnTerminate := True; // 自动删除
InitializeCriticalSection(CS); //初始化临界区
inherited Create(False); // 直接运行
end;
procedure TMyDownLoad.Execute;
begin
{ Place thread code here }
EnterCriticalSection(cs); //进入临界区
if Terminated then exit;
Synchronize(Download);
LeaveCriticalSection(CS); //退出临界区
end;这里是我线程工作的主要代码,请问该如何动态添加。可以用一个按钮模拟
dwThreadID: dWord;
begin
hThread := CreateThread(nil, 0, @MyThreadFunc, nil, 0, dwThreadID);
if hThread = 0 then
messagebox(handle, '线程创建失败', '报警提示', mb_ok);
whbo(王红波(年轻人,要有所作为))你的代码我看不大懂
有没有多一点的
var
MyThread:TMyDownLoad
begin
MyThread:=TMyDownLoad.Create;
.......
end;
CreateThread是個API函數!樓上朋友不知道你是否看了樓主的問題?