Create/destroy thread

Posted in Application

This is a simple example, which shows how to create and destroy an additional thread for your application. First of all, you should declare new thread object and override Execute method. Use Create method to create new thread for your application. Use FreeOnTerminate property to free and destroy your thread.

type
  TTestThread = class(TThread)
  private
    j: Integer;
  protected
    procedure GetInfo;
    procedure Execute; override;  
  end;

...

procedure TTestThread.Execute;
var
  i, j: Integer;
begin
  SendMessage(Form1.Handle,
    WM_SETTEXT, 0, Integer(PChar('Thread is created')));
  j:=1;
  FreeOnTerminate:=True;
  for i:=1 to 90000000 do
  begin
    if Terminated then break;
    Inc(j, Round(Abs(Sin(Sqrt(i)))));
  end;
  SendMessage(Form1.Handle,
    WM_SETTEXT, 0, Integer(PChar('Thread is destroyed')));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  NewThread: TTestThread;
begin
  NewThread:=TTestThread.Create(False);
end;