使用Tidftp, 在多个线程中,每一个线程使用Tidftp下载一个文件时,某一个线程停止,捕捉不到错误,其他线程还可以继续下载在onstatus事件中,查看信息 在" Starting FTP transfer"后,就不再下载了。
在连接时,已经设置了 connect(true,2200)这个问题与多线程有关,还是无关。是不是在GET的时候,出现问题了,有没有超时设置的问题
另外,开始疯狂占用内存,同时CPU占用率一直100%,不能完全退出程序,即仍在进程列表中显示。只能结束进程!!各位老大,指点一下吧,我不想放弃使用INDY FTP!!!相关代码如下: with IdFTP do
begin
try
if Connected then
Disconnect; //重新连接
Username := sName;
Password := sPass;
Host := sHost;
Port := StrToInt(sPort);
Connect(true,2200); //请问这个超时设多少为最佳?
except
on e:exception do
begin memo2.Lines.Add('线程' + inttostr(threadno) + '连接状态:'+e.Message);
idftp.Abort;
result := false;
exit;
end;
end; try
ChangeDir(sDir); //改变目录 downfilesizei[threadno] := Size(aFile); if bResume then //续传 IdFTP.Get(afile, sfile, false, true)
else
IdFTP.Get(afile, sfile, true); except
on e:exception do
begin
memo2.Lines.Add('线程' + inttostr(threadno) + '下载状态:'+e.Message);
idftp.Abort;
result := false;
exit;
end;
end; end; //end with
在连接时,已经设置了 connect(true,2200)这个问题与多线程有关,还是无关。是不是在GET的时候,出现问题了,有没有超时设置的问题
另外,开始疯狂占用内存,同时CPU占用率一直100%,不能完全退出程序,即仍在进程列表中显示。只能结束进程!!各位老大,指点一下吧,我不想放弃使用INDY FTP!!!相关代码如下: with IdFTP do
begin
try
if Connected then
Disconnect; //重新连接
Username := sName;
Password := sPass;
Host := sHost;
Port := StrToInt(sPort);
Connect(true,2200); //请问这个超时设多少为最佳?
except
on e:exception do
begin memo2.Lines.Add('线程' + inttostr(threadno) + '连接状态:'+e.Message);
idftp.Abort;
result := false;
exit;
end;
end; try
ChangeDir(sDir); //改变目录 downfilesizei[threadno] := Size(aFile); if bResume then //续传 IdFTP.Get(afile, sfile, false, true)
else
IdFTP.Get(afile, sfile, true); except
on e:exception do
begin
memo2.Lines.Add('线程' + inttostr(threadno) + '下载状态:'+e.Message);
idftp.Abort;
result := false;
exit;
end;
end; end; //end with
解决方案 »
- SQL把多条语句,用一条语句来执行。
- 怎样将edit和combobox中的内容送入dbgrid中?(急,在线等候!!!)
- Privileged instruction 错误,请教大虾
- [DELPHI OR VB]近期研究msn messenger log 保存方法,毫无进展。高分想求解决方案。
- 如何把一列数据变成一行字段?
- QuickReport控件
- 我做完了一个project,把文件复制到其它机器上不能run
- 硬盘故障!!!
- sos:delphi+excel???
- 急!急!急!!如何将一个阿拉伯数字转换成英语,如:输入1125.71显示为:ONE THOUSAND ONE HUNDRED AND TWENTY FIVE CENTS SEVENTY ONE ONLY
- Delphi下用treeview做数据库浏览器
- 关于报表 的..急啊...
没有遇到这个问题
不能完全退出,应该是没有释放资源
需要用AntiFreeze来防止窗口没响应的
并在onwork事件中输入application.ProcessMessages.
程序在正常工作时,CPU占用率可以,但是在有的线程出现问题的,占用率就上去了.
我使用的是INDY提供的多线程控件.