Jump to content
Alfonso CV

Bloquear programa.

Recommended Posts

Alfonso CV

Olá pessoal.

Uso Lazarus 1.8.4

Tenho uma aplicação que lê dados remotos, imagem e documentos gravados numa base de dados, o assunto é que quando são grandes e demoram um pouco a gente acha que o sistema está bloqueado, já coloquei barra de progresso e GIF dinâmico mas quando começa a fazer download estes controles param e o programa não responde. Também, se são varias imagens pequenas de 200 KB por exemplo depois de iniciar até não concluir o processo de download a aplicação não responde.

Já usei DELAY e SLEEP para refrescar o Form entre download e nada, a aplicação entra num estado de Stand-by e até não terminar não responde.

Alguma dica???

Cumprimentos,

 

Share this post


Link to post
Share on other sites
nunopicado

O problema é que estás a fazer o download na thread principal, onde também corre o UI do programa. 

Em termos simplistas, numa mesma thread, o CPU do computador pode correr apenas uma instrução de cada vez... 

Tu estás a tentar fazer as instruções do download e as instruções da actualização do UI em simultâneo, pelo que uma delas acaba por ficar para trás. 

Por causa disto, quando há processos demorados, estes devem ser corridos numa segunda thread, deixando a principal encarregue de actualizar o UI. 

Assim já funcionará correctamente. 


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
Alfonso CV

Olá Nuno.

Consegui resolver o problema colocando no código o seguinte:

Application.ProcessMessages;

Cumprimentos.

 

Share this post


Link to post
Share on other sites
Alfonso CV

Olá Nuno.

Como já tenha dito, de momento resolvi mas acho que vamos a ter em conta teu comentário pois se facilita a execução do programa e contribui a ser um bocadinho mais rápido alem das possíveis consequências quando se produz alguns erro vale a pesa dar uma olhada neste tema. 

Cumprimentos.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.