Fala ai Radizeiros e Radizeiras, tudo bem com vocês?

Dando continuidade a nossa série de Paralelismo, irei mostrar para vocês um conceito que não falei ainda, que é o Create anonymous Thread.

Quando você quer executar qualquer coisa rápida dentro de uma Thread, ou seja, rodar qualquer ação separada rapidamente dentro de uma Thread.

Tudo isso é para que sua aplicação não trave, ou qualquer coisa venha acontecer.

Nós possuímos da biblioteca System.Threading, que é a biblioteca que temos usado bastante nessa nossa série.

E existem também a biblioteca SyncObjs, que é para sincronização de objetos.

Mas antes de entrarmos a fundo nisso, como podemos trabalhar, com uma Thread anônima.

Não precisamos instanciar, criar classe, fazer nada do tipo.

Simplesmente eu quero rodar alguma coisa dentro de uma Thread rapidamente para não travar minha aplicação.

procedure TForm1.Button4Click(Sender: TObject);
begin
    Thread.CreateAnonymousThread(
    procedure
    begin
        Thread.Sleep(5000);
        TThread.Synchronize(TThread.CurrentThread,
        procedure
        begin
            Memo1.Lines.Add('Teste anonymous Thread');
        end);
    end).Start;
end;

Esse é o CreateAnonymousThread, ele pede apenas um método anônimo, um TProc, ou seja, uma procedure, para que execute a procedure em uma Thread separada.

E observe no código acima que para que essa minha Thread fosse iniciada, eu tive que chamar o Start, e você não precisa se preocupar em ter que destruir, pois ela é automaticamente destruída, quando ela terminar.

Simplesmente fazendo isso você consegue executar uma tarefa.

Logo dentro do nosso método anônimo, como eu quero escrever em um componente na tela eu uso o Synchronize ou Queue, pois componentes visuais rodam em uma Thread principal.

Quem tem acompanhado nossa série já está familiarizado com a Synchronize e a Queue.

Observe agora esse nosso exemplo com o código que acabei de mostrar executando.

Observe que ao clicar no botão ele aguar os 5 segundos que define e após o término ele escreve no memo, e a cada ação elas vão chegando porque ele trabalha em tarefas diferentes, dentro da aplicação.

Muito legal trabalhar com Thread não é?

Com essa nossa série creio que você consegue reduzir e muito os travamentos de sua aplicação, e claro, se preocupando com a experiência do usuário.

Se você ainda não conhece a fundo sobre threads e outros conteúdos como esse que temos mostrado aqui no blog, acesse o link abaixo e conheça o CLUBE DOS PROGRAMADORES EM DELPHI.

Esses conteúdos fazem parte do maior acervo de conteúdos Delphi atualmente atualizado na comunidade, e creio que você irá alavancar em seus conhecimentos, e técnicas.

E caso você tenha interesse de conhecer mais sobre PPL acessa o nosso portal do CLUBE DE PROGRAMADORES EM DELPHI, onde você não só terá conteúdos relacionados aos generics, mas uma quantidade enorme de conteúdos que poderá lhe ajudar muito no seu dia a dia, é uma verdadeira NETFLIX para os programadores Delphi.

CLIQUE AQUI E SAIBA MAIS SOBRE O CLUBE DOS PROGRAMADORES DELPHI