我想用线程实现下面的代码.怎么写?以前没用过线程,现在要急着用到了,
procedure Tmainfrm.PingTimer(Sender: TObject);
var s,i,n:integer;
ipaddr:string;
begin
  AdoQuery1.Close;
  AdoQuery1.SQL.CLEAR;
  ADOQuery1.SQL.Add('select top 20 ip from zdip');
  ADOQuery1.Open;
  for I:=0 to 19 do
   begin
    edit1.text:=adoquery1.FieldByName('ip').asstring;
    adoquery1.Next;
    edit1.repaint;
    sleep(3000);
   end;
end;
用线程是为了保证在窗口关闭时不会因为还有程序在运行而死机,TIMER控件间隔2秒.这个程序运行完大概要1分钟,很容易遇到上面的情况,急!!!!