2017-01-16 56 views
0

我啓動我的Windows計時器,並試圖阻止,但似乎並不奏效,請參閱我的代碼:再次定時器如何在.net中工作?

private void button1_Click(object sender, EventArgs e) 
{ 
     timer1.Start(); 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 
     MessageBox.Show("Hello"); 
     timer1.Stop(); 
} 

它一遍又一遍地顯示了消息,並沒有停止。請給我一些想法,我非常感謝你的幫助。

+1

也許這個鏈接將幫助你解決你的問題。 http://stackoverflow.com/questions/4563704/c-sharp-how-do-you-stop-a-timer – Joseph

+0

這將幫助您瞭解http://stackoverflow.com/a/4563738/5001784 –

回答

2

您需要在之前停止顯示消息框的計時器。否則,他們可能會堆積。

沒有可以被配置爲一個單次定時器System.Timers.Timer,但對於其他計時器一般的方法是:

當計時器事件觸發時,停止計時,做你的事,然後開始如果需要再次定時。

+0

感謝您的你的答案。有沒有辦法重新執行定時器n次? 「爲」循環n次不起作用。 –

+0

當然。你需要像'int timerRanHowManyTimes = 0'這樣的類變量,並且在每個定時器事件中,變量都會增加。只有在該變量的值小於所需次數時才重新啓動計時器。 –

0

在行MessageBox.Show("Hello"); 執行將停在那裏等待用戶按下「確定」按鈕,這樣行timer1.Stop(); 不會直到達到用戶與消息框交互,定時器將繼續這樣的工作方式。

+0

我想我學到了一些新東西,非常感謝 –