Windows服务或控制台应用程序中的System.Timers.Timer

时间:2017-08-02 21:01:36

标签: vb.net timer

我正在编写一个vb.net .net 4.0应用程序,并且遇到了让计时器过去的问题。有人可以帮我告诉我我做错了吗?

我已经对主应用程序进行了大量的故障排除,以至于我决定尝试让它在一个新项目中运行,但似乎无法让它工作。

谢谢!

Module Module1

Public Timer As New System.Timers.Timer

Sub Main()


    AddHandler Timer.Elapsed, AddressOf Timer_Tick
    Timer.AutoReset = True
    Timer.Interval = 1000
    Timer.Start()



    Console.WriteLine("Timer Started")


End Sub

Sub Timer_Tick(source As Object, e As EventArgs)
    Console.WriteLine("TimerTick")
End Sub
End Module

3 个答案:

答案 0 :(得分:0)

您需要确保Main()一直在运行,否则您的流程会立即终止。

您可以使用Console.ReadLine()(如果您有控制台)或Thread.Sleep(Timeout.Infinite)

答案 1 :(得分:0)

我不知道您的代码无法正常工作的原因。但是您可以使用功能循环来完成相同的工作。

Module Module1

    Sub Main()
            Console.WriteLine("Timer Started")
            Timer_start()
        End Sub


        Function Timer_start()
            Timer_Tick()
            Threading.Thread.Sleep(1000)
        End Function


        Function Timer_Tick()
            Console.WriteLine("TimerTick")                
            Timer_start()
        End Function

End Module

答案 2 :(得分:0)

Sub Main

Timer.Interval = 60000  ' one minute
Timer.Enabled

' do stuff

Do until (Some condition, like a stop flag to stop looping and end program)
    System.Threading.Thread.Sleep(10000)
Loop

End

Timer_Elapsed(sender As Object, e As Timers.ElapsedEventArgs) Handles Timer.Elapsed

Timer.enabled = False

' do stuff

Timer.Enabled = True
End Sub