我已經將一個字符串值從一個文本框中分配給一個日期時間變量。它的目的是作爲一個標誌來告訴myTimer對象在達到存儲在workDt中的時間時停止(日期時間變量) 。如何在設定的時間間隔後停止Timer對象?
我試過的當前實現如下,我設置了一個if..else語句來檢查定時器的當前時間是否等於在文本框中輸入的值,但它不會觸發定時器停止。
我在'if'語句上設置了一個斷點,時間值被存儲在workDt中,但沒有觸發計時器停止。
任何人都可以在我的實施中看到一個缺陷,或者提供有關替代解決方案的任何建議嗎?
private void startBtn_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
string wrkString;
string rstString;
//Assign text box time string to string variables.
wrkString = wrkTbx.Text;
rstString = restTbx.Text;
//Assign text box string value to a date time variable.
DateTime workDt = DateTime.ParseExact(wrkString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);
DateTime restDt = DateTime.ParseExact(rstString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);
StopGoCvs.Background = new SolidColorBrush(Colors.Green);
hornElmt.Play();
// // set up the timer
myTimer = new DispatcherTimer();
myTimer.Interval = new TimeSpan(0, 0, 0, 0, 1);
myTimer.Tick += myTimer_Tick;
//tell timer to stop when it has reached the allocated work time.
if(myTimer.Interval != workDt.TimeOfDay)
{
// start both timers
myTimer.Start();
myStopwatch.Start();
}
else
{
myTimer.Stop();
myStopwatch.Stop();
}
}
看來我應該使用檢查存儲在myStopwatch經過時間的值而不是定時器對象的解釋。你有什麼建議如何檢查?我試過'if(myStopwatch.Elapsed = workDt.TimeOfDay)',但它不是一個有效的賦值。 – 2014-10-07 18:29:55