在Delphi FMX中,可以使用TThread.Synchronize方法來實現線程同步。TThread.Synchronize方法接受一個匿名方法作為參數,該方法將在主線程上下文中執行。具體的用法如下所示:
TMyThread = class(TThread)
private
procedure UpdateUI;
protected
procedure Execute; override;
end;
procedure TMyThread.Execute;
begin
// 執行耗時操作
// 調用線程同步方法更新UI
TThread.Synchronize(nil, UpdateUI);
end;
procedure TMyThread.UpdateUI;
begin
// 在主線程中更新UI
end;
在TMyThread的Execute方法中,可以執行一些耗時的操作。然后使用TThread.Synchronize方法調用UpdateUI方法,該方法將在主線程上下文中執行,以更新UI。
需要注意的是,由于TThread.Synchronize方法會在主線程上下文中執行,因此UpdateUI方法中不能執行耗時操作,以免阻塞主線程的執行。