2014-04-22 3 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

Пидигор, спасибо большое. Это отличный пример. –

0

Создайте новую тему и запустите свой код в теме. Процесс фактически не будет завершаться до тех пор, пока поток не будет выполнен, даже если форма закрыта.

Конечно, теперь вам придется иметь дело с нитью и всеми неприятностями/забавой.

Вы можете поочередно реализовать код, который хотите продолжать работать как служба Windows. Они будут работать постоянно, без пользовательского интерфейса. Затем вы можете иметь интерфейсный интерфейс, который связывается с сервисом для планирования работы и получения результатов.

+0

Спасибо Брэдли. –

Смежные вопросы