2016-01-22 105 views
1

我環顧了很多,並找到了一些答案,但沒有一個工作。定時器作爲睡眠?

據我所知,「睡眠()」凍結了應用程序,這就是爲什麼我添加了一個計時器。我想這樣我這樣做是它睡覺1000毫秒:

Timer1.Interval = 1000 
Timer1.Start() 

然而,這似乎並沒有工作。我沒有得到任何錯誤,程序運行就像它沒有計時器時的運行。

我正在做這個對嗎?如果不是,有人可以修復它? (定時器啓用)

謝謝!

+1

'Timer1'將每1000ms觸發一個事件;他們不睡覺。在環顧四周時,你一定錯過了這個:[Timer Class](https://msdn.microsoft.com/en-us/library/system.windows.forms.timer(v = vs.110).aspx) – Plutonix

+0

All you所做的就是啓動計時器。您的代碼將繼續執行'Timer1.Start()'後面的指令。您需要退出此方法,然後在'Timer1.Tick'事件中,您可以執行重新處理所需的操作。 – Blackwood

+1

我想你可能想要的是'等待Task.Delay(1000)' – Crowcoder

回答

0

你需要聽Tick事件https://msdn.microsoft.com/en-us/library/system.windows.forms.timer.tick(v=vs.90).aspx

創建一個處理程序,並跟蹤蜱有:

'prompts the user whether the timer should continue to run' 
Private Shared Sub TimerEventProcessor(ByVal myObject As Object, _ 
             ByVal myEventArgs As EventArgs) _ 
            Handles myTimer.Tick 
    myTimer.Stop() 

    ' Displays a message box asking whether to continue running the timer. 
    If MessageBox.Show("Continue running?", "Count is: " & alarmCounter, _ 
         MessageBoxButtons.YesNo) = DialogResult.Yes Then 
     ' Restarts the timer and increments the counter. 
     alarmCounter += 1 
     myTimer.Enabled = True 
    Else 
     ' Stops the timer. 
     exitFlag = True 
    End If 
End Sub 

,並在主

Public Shared Sub Main() 
    ' Adds the event and the event handler for the method that will 
    ' process the timer event to the timer. 

    ' Sets the timer interval to 5 seconds. 
    myTimer.Interval = 5000 
    myTimer.Start() 

    ' Runs the timer, and raises the event. 
    While exitFlag = False 
     ' Processes all the events in the queue. 
     Application.DoEvents() 
    End While 

End Sub 

希望這有助於。

+0

我知道這很容易轉換爲VB,但爲了OP的緣故,你可以把這個在問題標記被標記的VB語法中? – Codexer

+0

好吧,對不起,我會更新我的答案,謝謝 – Rosenumber14

+0

因此,這將使控制檯等待,但在同一時間讓其他代碼保持運行? – Obfuscated