在我的應用程序中,我定義了一個計時器並將時間間隔設置爲x秒。 之後,當發生'click'事件時,我想增加運行計時器y秒多一點。如何增加運行計時器
我該怎麼做?
的代碼示例:
private static Timer sTimer = new Timer();
sTimer.Interval = 50000;
當事件被調用我想要做這樣的事情:
sTimer.Interval = timeLeftInms + 5000;
在我的應用程序中,我定義了一個計時器並將時間間隔設置爲x秒。 之後,當發生'click'事件時,我想增加運行計時器y秒多一點。如何增加運行計時器
我該怎麼做?
的代碼示例:
private static Timer sTimer = new Timer();
sTimer.Interval = 50000;
當事件被調用我想要做這樣的事情:
sTimer.Interval = timeLeftInms + 5000;
你應該創建一個自定義的Timer,它繼承自System.Timers。
有一個private Stopwatch stopWatch = new Stopwatch();
私人會員。
On Timer.Start:stopWatch.Start();
On Timer.Tick:stopWatch.Reset();
在
Timer.Interval
set {
_timer.Interval = _timer.Interval -
stopwatch.Elapsed.Miliseconds + value;
}
好主意,什麼微軟沒有做屬性的情況下? –
好吧,他們不能真正想到人們想要使用計時器的每個場景,所以他們爲你提供了基本知識,並且能夠修改它 –
我認爲剩下的時間是需要的;)非常有用 –
有一個計時器,更新系統/視圖/不管在定期間隔,如每250毫秒
當您的系統開始填充日期時間來保存該值時,第一個事件將快樂恩...好像DateTime.Now + TimeSpan.FromSeconds(20)
更新日期時間表示變量,而不是你的計時器...
時間左側是你的變量和DateTime.Now
解決問題,但額外的對象不是最好的代碼解決方案(需要始終保持),如果我有不止一個人需要與自己的時間跨度... –
我可以做的是計時器對象的擴展方法和在這種情況下,使用你的解決方案添加wxample sTimer.TimeLeft –
如果有疑問,將你的日期時間存儲在字典中,並將用戶相應的定時器作爲密鑰 – DarkSquirrel42
之間的區別只要做
sTimer.Interval + = 5000;
裏面的點擊事件
interval是定時器在你的例子中runnung的時間,如果我有定時器運行10秒,主要的間隔是更新後的50秒,你將只有5秒的計時器結束,我在我的情況下是45秒。 –
那麼,什麼是錯的這個解決方案? –
timeLeftInms不存在 –
定時器對象中沒有可返回剩餘時間的屬性。 –