我创了4个线程.分别是 
  QueryThread := TQueryThread.Create(True);
  QueryThread_1 := TQueryThread_1.Create(True);
  QueryThread_2 := TQueryThread_2.Create(True);
  SearchExl := TSearchExl.Create(True);
   我是想让QueryThread ,QueryThread_1,QueryThread_2这三个线程先运行,等待这三个线程运行完了后,才运行SearchExl ,我如何判断那三个线程已全部运行完呢?代码怎么写?代码是写在SearchExl 线程类中,还是主类中??
谢谢
  

解决方案 »

  1.   

    Thread.WaitFor 就是等待返回了
      

  2.   

    var
      Handles: array [0..2] of THandle;
    begin
      Handles[0] := QueryThread.Handle; 
      Handles[1] := QueryThread_1.Handle; 
      Handles[2] := QueryThread_2.Handle;   WaitForMultipleObjects(3, @Handles[0], True, INFINITE);
    end;
      

  3.   

    同意僵哥
    WaitForMultipleObjects