CreateAnonymousThread crea una instancia derivada de TThread que simplemente llama al método anónimo de tipo TProc .
La forma correcta de crearlo es:
TThread.CreateAnonymousThread(
procedure
begin
TThread.Synchronize(TThread.Current,
procedure
begin
{ lo que tu quieras ...}
end);
TThread.Synchronize(TThread.Current, EndProgress);
end).Start;
...
procedure EndProgress;
begin
{se ejecuta al finalizar el Thread...}
end;
Con esto puede ejecutar cualquier cosa en un hilo separada sin que bloquee la UI.