请问各位我想做一个多线程的程序就是这样的我一边把数据从数据库里读出来显示到界面上,一边往数据库中增加我要的数据由于本人从未做过多线程的程序,请各位高手帮助一下非常感谢呀最好给一个简单的多线程的小例子看一看呀

解决方案 »

  1.   

    delphi 安装目录下的demo中有thread 的例子
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, ADODB, ActiveX;
    type  test = class(TThread)
      private
        acc:TADOConnection;
        num:integer;
        
      protected
        procedure Execute; override;
      public
          constructor create(num1:integer;conn: TADOConnection);  end;
     }
      TForm1 = class(TForm)
        Button1: TButton;
        ADOQuery1: TADOQuery;
        ADOConnection1: TADOConnection;
        Button2: TButton;
        ADOQuery2: TADOQuery;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
      //procedure Thread1Done(sende:Tobject);
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      t1: test;implementation{$R *.dfm}{ test}constructor test.create (num1:integer;conn:TADOConnection);
    begin
      acc:=conn;
      num:=num1;
      FreeOnTerminate:=true;
      inherited create(false);
    end;procedure test.Execute;
    var
      i:integer;
      aaa: TADOQuery;
    begin
      coInitialize(nil);
      aaa := TADOQuery.Create(nil);  aaa.Connection := acc;
      aaa.SQL.Clear;
      case num of
      0:
        begin
          aaa.SQL.Add('select * from test1'); 
          aaa.Close;
          aaa.Open ;
          for i:=1 to 100 do
          begin
            aaa.Insert;
            aaa.FieldByName('id').AsInteger :=i;
            aaa.Post;
          end;
        end;
      1:
        begin
          aaa.SQL.Add('select top 1 * from test1');
          aaa.Close;
          aaa.Open ;
          for i:=100 to 200 do
          begin
            aaa.Insert;
            aaa.FieldByName('ss').AsInteger :=i;
            aaa.Post;
          end;
        end;  
      end;
      couninitialize;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        t1:=test.Create(edit1);
    end;end.
      

  3.   

    最后一个过程写错了,不好意思 ,应该这样子写,
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        t1 := test.create(1,ADOConnection1);
    end;