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

问题描述:

我在写一个vb.net .net 4.0应用程序,并且遇到了计时器过期的问题。有人可以告诉我我做错了什么吗?Windows服务或控制台应用程序中的System.Timers.Timer

我已经对主应用程序进行了很多故障诊断,所以我决定尝试使它在新项目中工作,并且似乎无法使其工作。

谢谢!

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 
+0

该代码即将执行,然后几乎立即关闭控制台窗口,计时器将永远不会有机会打勾。如果添加“Do Until(Console.ReadKey.Key = ConsoleKey.Escape):Loop”作为Main()子句的最后一行,那么您将看到计时器有机会按预期方式打勾并写入 – soohoonigan

您需要确保Main()继续运行,否则您的进程将立即终止。

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

+0

'Thread。睡眠(Timeout.Infinite)'似乎不能在vb.net中工作,而我从来没有必须在Windows服务中这样做... – GaryO