ola amigos,
estou com uma necessidade que não consegui imaginar como fazer.
preciso disparar uma atualizacão diaria que nada mais é que um laço while ! eof() e dentro desse laço atualiza alguns campos.
Acontece que não queria fazer por fora da aplicação e sim dentro mais sem ser atrave s de uma opção do menu, tipo determinado usuario se loga no sistena e dispara o processo, mais o importante é que fique transparente para o usuario, ele continua com sua operação do sistema normalmente, pois o processo demora uns 5 minutos.
Alguem ve alguma forma de se fazer isso?
uso clipper e xharbour.
Obrigado.
Disparar um processo
Moderador: Moderadores
Re: Disparar um processo
Uma das formas é fazer a checagem da necessidade de disparar o gatilho quando executando a função Inkey(). Você criaria uma função com outro nome, por exemplo GetKey(), e de tempos em tempos ela verificaria a necessidade. Claro que, ao final da execução, essa função chamaria a velha InKey() com os mesmos argumentos.
Uma outra possibilidade é você utilizar uma função que rode em background, e que faça esse trabalho ao mesmo tempo em que o programa roda. Há duas bibliotecas com funções do tipo: a NanForum ToolKit (função FT_OnTick()), que tenho no meu site e uma outra chamada BGEvents, cujo arquivo (bgev5.zip) pode ser baixado do site The Oasis. Detalhes no ZIP.
Uma outra possibilidade é você utilizar uma função que rode em background, e que faça esse trabalho ao mesmo tempo em que o programa roda. Há duas bibliotecas com funções do tipo: a NanForum ToolKit (função FT_OnTick()), que tenho no meu site e uma outra chamada BGEvents, cujo arquivo (bgev5.zip) pode ser baixado do site The Oasis. Detalhes no ZIP.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Re: Disparar um processo
Quando precisei usar algo em segundo plano, usei a BGEvents. Porem, se for para executar alguma tarefa como um loop, acho que nao ficara bom.
A tarefa principal (primeiro plano) e a(s) tarefa(s) em segundo dividem o processamento do sistema (clipper), ou seja, numa operação de loop, o sistema ficara preso até que o loop termine. Os Eventos são disparados conforme o intervalo de tempo definido, mais, só voltam ao principal quando a função terminar. Enquanto isso, creio que usuário não conseguira trabalhar, pois acho que a tela principal irá travar.
Não ocorre como vc abrir o sistema principal no Windows e depois abrir outro aplicativo em outra janela ( mesmo assim o windows deixara sua aplicação principal mais lenta ).
De qualquer forma não custa tentar.
Ate+
A tarefa principal (primeiro plano) e a(s) tarefa(s) em segundo dividem o processamento do sistema (clipper), ou seja, numa operação de loop, o sistema ficara preso até que o loop termine. Os Eventos são disparados conforme o intervalo de tempo definido, mais, só voltam ao principal quando a função terminar. Enquanto isso, creio que usuário não conseguira trabalhar, pois acho que a tela principal irá travar.
Não ocorre como vc abrir o sistema principal no Windows e depois abrir outro aplicativo em outra janela ( mesmo assim o windows deixara sua aplicação principal mais lenta ).
De qualquer forma não custa tentar.
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Re: Disparar um processo
Esse esquema de código rodando em background é realmente muito bom mas, como o Clipper não trabalha com threads, se ficar muito carregado, pode muito bem "amarrar" o programa, causando uma lentidão.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!


