把错误信息贴出来
另:
//线程中向TreeView中加内容
procedure  TIPSearchThread.AddItems;
begin
   Form1.TreeView1.Items.Add(nil,IPSite[m]);//线程中不能直接操作VCL,用Synchronize
end;

解决方案 »

  1.   

    Synchronize已经用了编译过了,可是一运行就出错,
    或无法运行(任务管理器显示CPU占用00)
      

  2.   

    为什么没有人回答!请问InternetConnect()不成功返回什么?
      

  3.   

    下标越界了。
    procedure TIPSearchThread.Execute;
    var
      IfOrNot:Boolean;
    begin
      { Place thread code here }
       FreeOnTerminate:=True;//自动结束线程
       //搜索IP地址
       repeat
       hConnect[m-1]:=InternetConnect(hInternet[m-1],
                                    PChar(IPSite[m-1]),
                                    INTERNET_DEFAULT_FTP_PORT,
                                    nil,
                                    nil,
                                    INTERNET_SERVICE_FTP,
                                    INTERNET_FLAG_EXISTING_CONNECT OR INTERNET_FLAG_PASSIVE,
                                    $0);
       ifornot:=hConnect[m-1]<>nil;
       if ifornot then
       begin
         Synchronize(AddItems);
         InternetCloseHandle(hConnect[m-1]);
         hConnect[m-1]:=nil;
       end;
          IPSite[m-1]:=IntIPToStrIP(StrIPToIntIP(IPSite[m-1])+500);
       until IPSite[m-1]>StrIPEnd;
    end;
    不过好像没有一个可以连上。
      

  4.   

    "500个线程太多了"
    不会吧?
    这可是...
    我想这适合比较大的NetWork吧
      

  5.   

    你的hInternet与hConnect都没分配内存。
    你可以用allocmem(),自己看一下帮助更好!
    你最好用一下InternetOpintion()来设置超时。否则你的程序会很慢的。