关于TIDFTP控件,下载过程中,停止反应!

快活林 2006-01-26 10:24:10
使用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



...全文
374 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
快活林 2006-04-09
  • 打赏
  • 举报
回复
我找到原因了,不是INDY的事,线程有可能死锁了
快活林 2006-02-22
  • 打赏
  • 举报
回复
关于INDY的版本,我已经用了9.018
并在onwork事件中输入application.ProcessMessages.
程序在正常工作时,CPU占用率可以,但是在有的线程出现问题的,占用率就上去了.
我使用的是INDY提供的多线程控件.
快活林 2006-02-22
  • 打赏
  • 举报
回复
自己顶!
constantine 2006-02-15
  • 打赏
  • 举报
回复
D7原来的版本用AntiFreeze也不行,后来我都放到线程里面下载
ly_liuyang 2006-02-15
  • 打赏
  • 举报
回复
用新版本的Indy
需要用AntiFreeze来防止窗口没响应的
jilu_sun 2006-02-15
  • 打赏
  • 举报
回复
Tidftp组件用起来挺好的
没有遇到这个问题
不能完全退出,应该是没有释放资源
helodd 2006-02-15
  • 打赏
  • 举报
回复
升级Indy 试下,delphi7自带的不够稳定,稳定版是:9.018

「已注销」 2006-02-14
  • 打赏
  • 举报
回复
另外,开始疯狂占用内存,同时CPU占用率一直100%,不能完全退出程序,即仍在进程列表中显示。只能结束进程!!

在indyftp控件的onwork事件中输入application.ProcessMessages;CPU就不会一直占用
leizhen2004 2006-02-14
  • 打赏
  • 举报
回复
帮顶~~~~~
myhenry 2006-02-14
  • 打赏
  • 举报
回复
我也是,帮顶。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3352368

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧