线程使用Ftp组件连接失败问题, 200分奉送!!!!(200分)

  • 主题发起人 主题发起人 Simov
  • 开始时间 开始时间
S

Simov

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:如何避免线程中Ftp组件连接不上时引发错误?
无论用Delphi的TNMFtp还是新出的TIdFtp,我在某线程中创建Ftp客户后,
总在执行Connect方法时中出现异常,引发win98兰屏错误,报告VWin32.vxd错误,
然后程序中止.
procedure TMyThread.Execute;
...
FtpClient:=TIdFtp.Create(mainform);
...
try
FtpClient.Connect;
except
on E: Exception do HandleThreadException(E.ClassName);
end;
.....
其中HandleThreadException(包括Application.OnException)可以捕捉到异常,
但仍无法避免程序崩溃的结局.
请问各位此问题该如何解决?
 
我前不久用ICS的FTPClient试过,没问题的,看你的代码,应该是你没有把FtpClient放在
Synchronize中调用的缘故吧。下面是我写的代码,用的是ICS的控件,你改一下吧。

procedure TMultiThreadFTP.Execute;
begin
Synchronize(DownLoadFile);
end;

procedure TMultiThreadFTP.DownLoadFile;
begin
FFTPCli.Receive;
end;
 
接受答案了.
 
后退
顶部