GARANTIR DESCONTO

Fórum Como executar somente uma tarefa em um programa ? #422964

31/08/2012

0

Como executar somente uma tarefa em um programa

Exemplo:
Eu tenho uma "Tarefa" (um procedimento) que pode ser executado e demorar minutos para acabar MAS eu tenho um timer que executa esta "tarefa" (a mesma tarefa) de um em um minuto (só ai já dá para ver qual será o problema) e se ACONTECER de as duas chamada a "TAREFA" coincidir uma com a outra eu executar e depois o timer executar

não sei se fui claro mas resumindo tenho uma tarefa que é executada duas vezes uma pela usuário outra pelo componente timer

A minha solução no momento foi quando o timer for executar eu verifico se o Screen.Cursor <> crHourGlass ai se for diferente ele executa BELEZA mas deve ter uma maneira de verificar de um processo tá em execução (no caso a minha "tarefa")

Ewerton Rodrigues

Ewerton Rodrigues

Responder

Posts

31/08/2012

Joel Rodrigues

Você pode criar uma variável para guardar o status da tarefa. Por exemplo, a variável EM_ANDAMENTO seria true quando a tarefa iniciasse e false ao término desta. Para iniciar uma nova chamada, bastaria verificar se a variável é false.

Boa sorte.
Responder

Gostei + 0

31/08/2012

Ewerton Rodrigues

Você pode criar uma variável para guardar o status da tarefa. Por exemplo, a variável EM_ANDAMENTO seria true quando a tarefa iniciasse e false ao término desta. Para iniciar uma nova chamada, bastaria verificar se a variável é false.

Boa sorte.


isto eu até pensei MAS não teria como ver tipo só mesmo imaginando if Button1.process = true then ou if not button.state [ineecution] sei lá algo assim entendeu

Mas valeu pela resposta


As vezes a solução simples é a melhor solução né
Responder

Gostei + 0

31/08/2012

Ewerton Rodrigues

Você pode criar uma variável para guardar o status da tarefa. Por exemplo, a variável EM_ANDAMENTO seria true quando a tarefa iniciasse e false ao término desta. Para iniciar uma nova chamada, bastaria verificar se a variável é false.

Boa sorte.


Eu já tinha até feito um pouco diferente e tava testando no momento e funcionou

olha o código só que eu usei o CURSOR mesmo da aplicação

if Screen.Cursor <> crHourGlass then
  begin
    // ShowMessage('Eu executei de qualquer jeito kkk');
    // Só executa mesmo quando a aplicação não estiver fazendo nada
    BTTranfClick(Self);
  end;


Funciona também
Responder

Gostei + 0

31/08/2012

Joel Rodrigues

Pois é, as vezes o mais simples é o melhor. Eu particularmente nunca vi nada do tipo que você falou. Talvez usando Thread você pudesse fazer algo assim, mas daria mais trabalho também. Sugiro manter como está.

Abraço.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar