0

我是delphi中线程的初学者。我写了这段代码,它工作得很好。

它从打开 ClientDataSet1 开始,直到完成,然后打开 ClientDataSet2,依此类推。

我的问题是:如何同时开始打开它们。

TTHread.CreateAnonymousThread(
procedure
begin
  TTHread.Synchronize(nil,
    procedure
    begin
      with ClientDataSet1 do
        try
          ProgressBar1.Max := 2000; // number of records of ClientDataSet1
          PacketRecords := 50;
          Open;
          DisableControls;
          while not Eof do
          begin
            ProgressBar1.Position := ProgressBar1.Position + 1;
            Label1.Caption := ClientDataSet1.RecordCount.ToString;
            Next;
            Application.ProcessMessages;
          end;
          EnableControls;
        except
          // ShowMessage(Msg);
        end;
    end);

  TTHread.Synchronize(nil,
    procedure
    begin
      with ClientDataSet2 do
        try
          ProgressBar2.Max := 2330; // number of records of ClientDataSet2
          PacketRecords := 80;
          Open;
          DisableControls;
          while not Eof do
          begin
            ProgressBar2.Position := ProgressBar2.Position + 1;
            Label2.Caption := ClientDataSet2.RecordCount.ToString;
            Next;
            Application.ProcessMessages;
          end;
          EnableControls;
        except
          // ShowMessage(Msg);
        end;
    end);
end).Start;

请帮我。

4

0 回答 0