如何在程序关闭后保持Timer运行?

时间:2014-04-22 20:42:12

标签: vb.net

我有一个使用计时器20秒的VB.Net程序。程序运行时,计时器工作正常,直到完成(20秒)。我的问题是如果我在10秒后关闭程序,计时器也会停止。但是,我想要的是一个允许计时器继续运行的代码,直到它完成剩余的10秒。所以我的问题是,是否可以使用计时器并使其在程序关闭后运行?或者,是否有其他方法可以完成我想要做的事情(例如:即使我关闭程序,也要保持Timeofday.Ticks运行)?非常感谢您的解决方案。 谢谢, A-技术

2 个答案:

答案 0 :(得分:1)

我不确定您是否可以在关闭后继续运行它,但您可以使用以下代码推迟关闭应用程序。

Public Class Form1

Dim closer As Boolean = False

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Timer1.Enabled = True
    Label1.Text = "Timer started"
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Timer1.Enabled = False
    Label1.Text = "Timer stopped"
    If closer Then
        Application.Exit()
    End If
End Sub

Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    If Timer1.Enabled Then
        closer = True
        e.Cancel = True
    End If
End Sub

End Class

答案 1 :(得分:0)

创建一个新线程并在线程中运行代码。即使表单已关闭,该过程也不会在线程执行之前实际退出。

当然,你现在必须处理一个主题和所有麻烦/乐趣。

您可以交替实现要继续作为Windows服务运行的代码。这些将在没有UI的情况下持续运行。然后,您可以拥有一个与服务通信的前端UI,以安排工作和检索结果。