Jump to content
debliu

execuçoes periodicas

Recommended Posts

debliu

no caso de meses ou anos acho que não justifica usar um timer ou coisa do género,

uma solução do género "teste se está na altura" sempre que aplicação arranca não resolve?

ya resolve, como posso fazer isso no C#?

Que código uso?

Share this post


Link to post
Share on other sites
Nazgulled

Mas a app vai estar sempre a correr no sistema ou estás a espera que a tua app seja lançada no dia X a hora Z e execute tarefa Y? Se for a primeira hipotese só tens de colocar um timer de segundo a segundo (se precisares de tal precisão, mas isto pode ser intensivo) ou minuto a minuto e dentro do evento do timer verificas se está na hora de tarefa Y.

Share this post


Link to post
Share on other sites
vitortomaz

ya resolve, como posso fazer isso no C#?

Que código uso?

No arranque da aplicação testas se o DateTime.Now (data e hora do windows) é superior à data que guardaste persistentemente algures (base de dados, ficheiro, etc..) e executas a tarefa que tens que executar...

esse teste pode ficar, por exemplo, no construtor da frame principal

Share this post


Link to post
Share on other sites
debliu

Mas a app vai estar sempre a correr no sistema ou estás a espera que a tua app seja lançada no dia X a hora Z e execute tarefa Y? Se for a primeira hipotese só tens de colocar um timer de segundo a segundo (se precisares de tal precisão, mas isto pode ser intensivo) ou minuto a minuto e dentro do evento do timer verificas se está na hora de tarefa Y.

É mesmo a segunda hipotese....

A minha ideia era no primeiro dia de cada mês quando a aplicação fosse executada gravasse um ficheiro de texto, caso a aplicação nao fosse executada no primeiro dia do mes gravaria o ficheiro quando fosse executada...

Share this post


Link to post
Share on other sites
vitortomaz

a aplicação não tem que executar (arrancar) exactamente nessa altura, o que acontece é que vais detectar se a data actua é superior à data agendada e como tal quando a aplicação arrancar depois da data agendada vai correr o código.

Não esquecer que

1 - se a aplicação já estiver a correr nessa data o código não corre, só quando voltares a arrancar com a aplicação.

2- assim que o código correr deves mudar a data de agendamento para que, a partir de agora, não estar a correr o código cada vez que a aplicação arranca.

certo?

Share this post


Link to post
Share on other sites
debliu

a aplicação não tem que executar (arrancar) exactamente nessa altura, o que acontece é que vais detectar se a data actua é superior à data agendada e como tal quando a aplicação arrancar depois da data agendada vai correr o código.

Não esquecer que

1 - se a aplicação já estiver a correr nessa data o código não corre, só quando voltares a arrancar com a aplicação.

2- assim que o código correr deves mudar a data de agendamento para que, a partir de agora, não estar a correr o código cada vez que a aplicação arranca.

certo?

exacto, é isso....

mas nao sei como vou fazer essa de mudar a data de agendamento, a minha ideia era agendar pa cada primeiro dia de cada mes mas nao sei como faço isso....

Share this post


Link to post
Share on other sites
vitortomaz

eu diria que terás que guardar em ficheiro/base de dados uma data de modo ao programa conseguir perceber se é para executar ou não, ou seja, para conseguir distinguir se já correu naquele mês ou não.

Não vou explicar acesso a file system ou base de dados, google it :)

quanto ao agendar para o próximo mês basta adicionares 1 mês ao DateTime [acho que existe um addMonths() ] que guardarás algures... digo eu

começas por construir uma date time com dia = 1, mês = mês currente +1, ano = ano actual

mãos há obra, testes...erros... correcções...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.