



Isso é a forma de fazer programação paralela antes do
Delphi XE 7, que trouxe diversos melhoramentos para este assunto.
Veja o exemplo de como usar uma Threads
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; TMinhaThread = class(TThread) private protected procedure Execute; override; public constructor Create(); end; var Form1: TForm1; implementation {$R *.dfm} constructor TMinhaThread.Create(); begin inherited Create(True); { Chama o contrutor herdado. Ele irá temporariamente colocar o thread em estado de espera para depois executá-lo. } FreeOnTerminate := True; // Libera da memoria o objeto após terminar. { Configura sua prioridade na lista de processos do Sistema operacional. } Priority := TpLower; Resume; // Inicia o Thread. end; procedure TMinhaThread.Execute; begin inherited; // Aqui fica o corpo da Thread onde você vai rodar seus // scripts que devem ser executados em processo individual Form1.Label1.Caption := 'Teste'; end; { Colocando a Thread em execução } procedure TForm1.Button1Click(Sender: TObject); var vThread : TMinhaThread; begin vThread := TMinhaThread.Create; vThread.Execute; end; end. |
Fonte base: http://www.planetadelphi.com.br/dica/7565/-usando-threads-para-rodar-processo-individual-na-mesma-aplicacao-