我正在使用一個類來修改DateTime並使用TimeSpan每秒用DispatchTimer顯示X小時,Y分鐘,Z秒到WPF標籤。代碼本身提供了適當的時間段,但DispatchTimer給出了錯誤的輸出。我可以就這裏發生的事情得到一些意見嗎?TimeSpan和DispatchTimer
修改時間分鐘屬性仍然在調試休息期間被查詢(懸停在ModifiedTime.Minutes不斷增加的數字。),這是常態嗎?
運行時輸出開始於3分鐘,然後顯示第8分鐘,13,18,23,28等
庫:
public Clock() {
load_ = DateTime.Now;
time_ = new DateTime();
time_ = DateTime.Now;
modifiedTime_ = new DateTime();
modifiedTime_ = DateTime.Now;
difference = TimeSpan.Zero;
}
public TimeSpan ModifiedTime {
//Convert the real time to timespan.
//display X Years, Y Days, Z Hours...
get {
modifiedTime_ = modifiedTime_.AddMinutes(1.0);
difference = modifiedTime_.Subtract(time_);
return difference;
}
set { difference = value; }
}
WPF:
DispatcherTimer dispatcherTimer;
public MainWindow() {
InitializeComponent();
dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
dispatcherTimer.Start();
}
private void dispatcherTimer_Tick(object sender, EventArgs e) {
lblModTime.Content = clock.ModifiedTime.Hours + " hours, " + clock.ModifiedTime.Minutes + " minutes, " + clock.ModifiedTime.Seconds + " seconds, " + clock.ModifiedTime.Milliseconds + " milliseconds.";
}
你能澄清你到底想要做什麼嗎? – Despertar
基本上,我比較兩個日期。一個是程序加載的時間,第二個會每秒增加一些任意的時間。我試圖展示兩者之間的跨度。 –