Olá pessoal, bem vindo ao novo artigo sobre threads.
Neste artigo vamos descrever com exemplos a importância
De threads em aplicações que executam processos longos,
Ou que congelam devido há algum processamento.
As threads são utilizadas para ordenar a ordem de processamento
De cada processo do Windows.
Normalmente uma aplicação sem definição de thread é criada como
Idle, que é o nível mais baixo.
Vamos fazer na prática que fica mais fácil.
Vamos fazer 2 aplicações e estaremos utilizando o Delphi 7
Mas podem ser aplicadas também ao Delphi 2005/2006 for win.32.
*********
Exemplo 1
*********
Vamos criar uma nova aplicação indo em File -> New -> Application.
Vamos inserir os componentes abaixo:
1 Button
1 Label
1 ProgressBar
E aos que quiserem o XpManifest(pra ficar com a cara do WinXP
(frescurinha :-P ))
Sua janela deve ficar parecida como abaixo:
Vamos colocar o código no evento de clique do botão. 2 cliques no
mesmo e vamos inserir o código abaixo.
Rodem a aplicação e vão perceber que enquanto a contagem
Não é finalizada o seu aplicativo fica travado.
Notem que em alguns casos até o Repaint da janela ele não consegue
Fazer. (quando a janela fica toda branca... isso em qualquer aplicativo)
Bom... vamos ver o resultado com o segundo exemplo...
(Salvem esta aplicação)
*********
Exemplo 2
*********
Vamos criar uma nova aplicação novamente: File -> New -> Application.
E iremos criar novamente a mesma aplicação. (Mas não vamos inserir
O código do botão):
1 Button
1 Label
1 ProgressBar
E aos que quiserem o XpManifest(pra ficar com a cara do WinXP
(frescurinha :-P ))
A diferença vem agora.
Vamos criar uma nova Unit: File -> New -> Unit.
Nela vamos colocar o código abaixo:
Agora no form que criamos vamos acrescentar o código abaixo, no
Evento de clique no botão. (2 cliques nele)
(Não esqueça de colocar Unit2 na uses)
Rode a aplicação e compare o resultado.
Você vai perceber que a sua aplicação conta normalmente sem travar.
Isso se deve a você ter tirado o nível de processamento dela idle, como
Mencionado é o menor e passou para lower.
Este recurso pode ser implementado em qualquer circunstância, e pode
Ser muito útil em aplicações que utilizam banco de dados, por que
Você pode colocar uma animação no seu programa enquanto ele executa
Uma instrução muito longa.