Fala, galera!!
Hoje vou postar uma solução para o problema do Timer em um windows service.
O problema é que o Timer simplesmente não funciona. Legal, não? :)
Pois é. Precisei criar um serviço de monitoração e, para isso, utilizei o Timer para que o monitoramento fosse executado no período especificado.
O processo de adição do Timer é o que nós já conhecemos: Arrastar o controle "Timer" da aba "Components" da Toolbox.
O problema é que o serviço ignorava o Timer e a monitoração não era realizada.
Pesquisando na internet, descobri que algumas pessoas passaram pelo mesmo problema.
Das soluções propostas, segue a mais simples e que, de fato, funciona:
Primeiro: Exclua o Timer que você já havia adicionado. :)
Declare o objeto privado oTimer:
Private oTimer As System.Threading.Timer
No envento On_Start do seu serviço adicione o seguinte código:
Dim oCallback As New TimerCallback(AddressOf OnTimedEvent)
oTimer = New System.Threading.Timer(oCallback, Nothing, 60000, 60000)
Em seguida crie o método OnTimedEvent e implemente o código que desejar que seja executada em cada "Tick" do timer.
Private Sub OnTimedEvent(ByVal state As Object)
'Adicione aqui seu código
End Sub
Um abraço e até a próxima!!
Assinar:
Postar comentários (Atom)
Parabéns pelo código, funciona perfeitamente
ResponderExcluirmuito bom!!!! salvou a minha manhã!!! hehehe!!!
ResponderExcluirMuuuuuuuuito bom, ganhei o final de semana...estava brigando com esse timer a um bom tempo!
ResponderExcluirCara, valeu - ja tem mais de um ano esse post parem me ajudou mesmo
ResponderExcluirCara,
ResponderExcluirMais um ano se passou e o post continua atual.
Grato!