Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

debliu

execuçoes periodicas

Mensagens Recomendadas

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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....

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.