From delphi-dev
Provides guidance on Delphi asynchronous programming patterns using TTask, Parallel, IFuture, and TThread. Covers cancellation, Synchronize vs Queue, critical sections, and variable capture pitfalls.
How this skill is triggered — by the user, by Claude, or both
Slash command
/delphi-dev:delphi-asyncThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Detecte o idioma da primeira mensagem. Padrão: pt-BR. Respeite overrides explícitos.
Detecte o idioma da primeira mensagem. Padrão: pt-BR. Respeite overrides explícitos.
Consulte knowledge/core/delphi-async.md para padrões detalhados.
procedure TRelatorioService.GerarRelatorioAsync(
AOnConcluido: TProc<TRelatorio>);
begin
TTask.Run(
procedure
var
LRelatorio: TRelatorio;
begin
LRelatorio := GerarRelatorio; // trabalho pesado na thread background
TThread.Synchronize(nil, // retorna para a thread principal
procedure
begin
AOnConcluido(LRelatorio);
end);
end);
end;
Synchronize | Queue | |
|---|---|---|
| Bloqueia? | Sim — aguarda a UI executar | Não — dispara e esquece |
| Quando usar | Preciso do resultado na UI antes de continuar | Notificação, atualização de progresso |
var LTask: ITask;
LTask := TTask.Run(
procedure
begin
while not (LTask.Status = TTaskStatus.Canceled) do
begin
// trabalho...
TTask.CurrentTask.CheckCanceled; // lança EOperationCancelled se cancelado
end;
end);
// Para cancelar:
LTask.Cancel;
Synchronize ou Queuetry/finally// ERRADO — LId é capturado por referência, pode ter mudado quando a task roda
for LId in LIds do
TTask.Run(procedure begin ProcessarId(LId); end);
// CORRETO — captura por valor via variável local
for LId in LIds do
begin
LIdLocal := LId; // cópia local
TTask.Run(procedure begin ProcessarId(LIdLocal); end);
end;
npx claudepluginhub adrianosantostreina/delphi-dev --plugin delphi-devGuides C# async/await patterns including Task, ValueTask, async streams, and cancellation for responsive applications. Use when writing asynchronous C# code.
Guides using Swift's concurrency model with async/await, actors, task groups, structured concurrency, and async sequences for safe, performant code without data races.
Provides Python asyncio patterns including async/await, gather, create_task, wait for concurrent I/O-bound and CPU-bound tasks.