首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TimeSpan和DispatchTimer

TimeSpan和DispatchTimer
EN

Stack Overflow用户
提问于 2013-01-23 11:38:36
回答 2查看 483关注 0票数 0

我正在使用一个类来修改一个DateTime,并使用一个TimeSpan来使用DispatchTimer每秒显示一个WPF标签的X小时,Y分钟,Z秒。代码本身给出了正确的时间跨度,但是DispatchTimer给出了错误的输出。我能得到一些关于这里发生的事情的信息吗?

在调试中断期间,仍然会查询ModifiedTime分钟属性(将鼠标悬停在ModifiedTime.Minutes上会不断增加数字。),这是常态吗?

运行时输出开始于3分钟,然后显示8分钟、13分钟、18分钟、23分钟、28分钟等。

库:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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.";
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 12:06:00

对每次你打电话给clock.ModifiedTime的时候。在您的调度程序中(4次!)将修改时间增加一分钟,并可能在调试器中再次计算语句。这就解释了你每次增加5次显示的原因。

票数 1
EN

Stack Overflow用户

发布于 2013-01-23 12:05:01

如果我理解正确的话,您希望每经过一秒,就增加一分钟的启动时间。因此,取以秒为单位的差值,然后将其添加为新时间的开始时间的分钟数。

代码语言:javascript
复制
public TimeSpan ModifiedTime
{
    get
    {
        TimeSpan elapsed = DateTime.Now - TimeStarted;
        return TimeStarted.AddMinutes(elapsed.TotalSeconds);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14472061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档