2014-04-22 57 views
-2

我有一個VB.Net程序,使用計時器20秒。程序運行時,定時器工作得很好,直到完成(20秒)。我的問題是如果我在10秒後關閉程序,計時器也會停止。但是,我想要的是一個代碼,它允許定時器繼續運行,直到完成剩餘的10秒。所以我的問題是,是否可以使用計時器並在程序關閉後運行它?或者,是否有其他方法可以完成我想要做的事情(例如:即使關閉程序,也要保留Timeofday.Ticks運行)?您的解決方案將不勝感激。 謝謝, A-Tech如何在程序關閉後保持定時器運行?

+0

這是一個C#方法http://stackoverflow.com/questions/11957486/timer-tick-after-formclosing –

+1

謝謝佩德羅。 –

回答

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

Pydigor,非常感謝。這是一個很好的例子。 –

0

創建一個新線程並在線程中運行您的代碼。該過程實際上不會退出,直到線程完成,即使窗體關閉。

當然,你現在必須處理一個線程和所有這些帶來的麻煩/樂趣。

您可以交替實現想要作爲Windows服務繼續運行的代碼。這些將持續運行,沒有UI。然後,您可以擁有一個與服務通信的前端UI,以安排工作和檢索結果。

+0

謝謝布拉德利。 –

相關問題