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