1.因为在同一个线程对象里,如果两次构造,将产生两个独立的线程,不但运行是独立的,而且使用线程的局部变量也是独立的、所以有下面的代码:(30分)
ThreadList为TList类型(下同)
var
  tbLoop:Cardinal;
  KeyLoop:Cardinal;
  tb:string;
  Html:string;
  tbs:TStringList;
  newThread:TSearchTb;
begin  for tbLoop := 0 to lstManagement.Count - 1 do
  begin
    tb:=lstManagement.Items[tbLoop];
    newThread:=TSearchTb.Create(True);
    newThread.TbName:=tb;
    newThread.Html:=TbBasePath + tb;
    newThread.Finish:=False;
    newThread.Resume;//开始执行
    ThreadList.Add(@newThread);//加入线程列表    
  end;
  newThread:=nil;
在这里、我的目的是创建出线程、我希望在这个过程结束时、线程并不结束、于是我就用一个TList对象来保存指针、
那么在这里、这个过程结束之前是否需要执行newThread.Free呢?2.
有下面的函数、是将不需要的线程销毁掉(30分)var
  i:Integer;
begin
  for i := 0 to ThreadList. - 1 do
  begin
    if TThread(ThreadList.Items[i]^).ClassNameIs('TSearchTb') then
    begin
      if TSearchTb(ThreadList.Items[i]^).Finish then
      begin
        TSearchTb(ThreadList.Items[i]^).Destroy;//销毁线程
        ThreadList.Delete(i);//从列表中移除
      end
      else
      begin
        TDeleteTb(ThreadList.Items[i]^).Destroy;//销毁线程
        ThreadList.Delete(i);//从列表中移除
      end;
    end;
  end;
end;可是执行到if TThread(ThreadList.Items[i]^).ClassNameIs('TSearchTb') then这一句就出现了内存方法错误的提示、这又是什么原因呢?我保存在里面我确认一定TThread类的、3.我发现有一个TThreadList类、同样可以把TThread对象放在里面、可是我却不知道怎么获得保存在TThreadList类中的对象属性了、(没有Items属性)、我需要根据线程内的一个属性才能判断这个线程是否可以销毁的(30分)暂时就想到这些、如果对我的描述有不清楚的地方可以问我、如果你都能回答出来90分就是你一个人的了