Многопоточные операции

uses System.Classes, System.SysUtils;

function Add(A, B: Integer): Integer;
begin
  Sleep(3000);
  Result := A + B;
end;

var
  Thread: TThread;
begin
  Thread := TThread.CreateAnonymousThread(
    procedure
    begin
      WriteLn('result: 'Add(35));
    end);
  Thread.FreeOnTerminate := False;
  Thread.Start;

  WriteLn('main thread');

  Thread.WaitFor;
  Thread.Free;
  //printed:
  //main thread
  //result: 8
end.