K
kinlinux
Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个程序中使用了这两个组件,我的想法是开一个线程去访问远程的ftp服务器,并进行相关的文件上传下载工作,在使用从TIdThread派生的多线程类的时候,发现经常出现问题,比如说在文件上传下载过程中不能立即中断和远程的连接,而是要等一会才能终止(我使用的是terminate这个thread),而且经常退出的时候报错。
网上说TIdThreadComponent可以解决indy的多线程问题,我下载了一个smtp的例子,并仿照它改写了以前的程序,但是还是有这个问题,在下载过程中根本就停不了。
我的程序如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
idthreadcomponent1.Active := True;
end;
procedure TForm1.IdThreadComponent1Run(Sender: TIdCustomThreadComponent);
begin
with IdFTP1 do begin
Connect;
try
Get('ProVisio.iso','C:/test.iso',True);
finally
Disconnect;
end;
Sender.Stop;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdThreadComponent1.Terminate;
end;
请问这个问题如何解决,谢谢
网上说TIdThreadComponent可以解决indy的多线程问题,我下载了一个smtp的例子,并仿照它改写了以前的程序,但是还是有这个问题,在下载过程中根本就停不了。
我的程序如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
idthreadcomponent1.Active := True;
end;
procedure TForm1.IdThreadComponent1Run(Sender: TIdCustomThreadComponent);
begin
with IdFTP1 do begin
Connect;
try
Get('ProVisio.iso','C:/test.iso',True);
finally
Disconnect;
end;
Sender.Stop;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdThreadComponent1.Terminate;
end;
请问这个问题如何解决,谢谢