Простой способ использовать потоки в Delphi.
С synchronize всё просто, если использовать его правильно 🙂
Содержимое функции
uses System.Classes, System.SysUtils, Vcl.Forms;
procedure Wait(Proc: TProc);
var
Thread: TThread;
begin
Thread := TThread.CreateAnonymousThread(procedure()
begin
Proc;
end);
Thread.FreeOnTerminate := True;
Thread.Start;
while not Thread.Finished do Application.ProcessMessages;
end;
Пример использования
Wait(procedure()
begin
// .... содержимое
end);