【问题标题】:How can we use timer control in VB.Net Console Application?我们如何在 VB.Net 控制台应用程序中使用计时器控件?
【发布时间】:2010-09-29 09:03:53
【问题描述】:

我正在尝试在我的控制台应用程序中使用 Timer 控件。

Friend WithEvents XTIMER As System.Windows.Forms.Timer

我正在设置它的所有属性。我已将间隔设置为 15000 毫秒。但即使我将计时器控件的启用状态设置为 true,tick 事件也不会触发。谁能帮帮我?

【问题讨论】:

  • 显示一些代码有助于我们诊断原因。

标签: vb.net console


【解决方案1】:
Module Module1

    Sub Main()
        aTimer.AutoReset = True
        aTimer.Interval = 2000 '2 seconds
        AddHandler aTimer.Elapsed, AddressOf tick
        aTimer.Start()
        Console.ReadKey()
    End Sub

    Dim aTimer As New System.Timers.Timer

    Private Sub tick(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
        Console.WriteLine("tick")
    End Sub

End Module

【讨论】:

  • 哇,谢谢。喜欢 Console.ReadKey() 让应用程序保持活力的方式。
  • 我个人更喜欢使用Threading.Thread.Sleep(Threading.Timeout.Infinite) 来保持应用程序打开,因为它不会强制使用命令窗口。
  • VB.NET 允许您使用Dim WithEvents aTimer As New System.Timers.Timer 定义计时器,并在Sub tick 定义的末尾添加Handles aTimer.Tick。然后你就不需要明确地AddHandler
【解决方案2】:

使用Timer Class

【讨论】:

  • @@ To ALL,所有这些在桌面应用程序中都可以正常工作,但在 onsole 应用程序中不起作用。tick 事件没有触发
  • 谢谢...这篇文章对我有帮助。感谢您的帮助
【解决方案3】:

改用 System.Timers.Timer。这是一个很好的comparison of the timer classes.

【讨论】:

【解决方案4】:

导入System.Windows.Forms 引用并使用Timer 类。

【讨论】:

  • @downvoter:想发表评论吗?这是一个完全合法的选择。您导入 System.Windows.Forms 引用的事实并不能使其成为 WinForms 应用程序。例如,如果您想使用 Point 类,您会推出自己的实现(作为纯粹主义者)还是使用 System.Drawing 中现有的实现?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 2012-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多