首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用c#在windows phone应用程序中计数计时器

使用c#在windows phone应用程序中计数计时器
EN

Stack Overflow用户
提问于 2013-04-18 00:45:34
回答 2查看 4.1K关注 0票数 1

我已经使用下面的代码实现了计数计时器(或秒表)。我想知道在windows phone中是否有使用c#实现这一点的有效且标准的方法。

如有任何建议,我们将不胜感激。

代码语言:javascript
复制
private void start_click()
{
    lhours = 0; lmins = 0; lsecs = 0; lmsecs = 0;
    myDispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 1000); // 1000 Milliseconds 
    myDispatcherTimer.Tick += new EventHandler(Each_Tick);
    myDispatcherTimer.Start();
}
public void Each_Tick(object o, EventArgs sender)
{    
    lsecs = lsecs  + 1;
    if (lsecs > 59)
    {
        lsecs = 0;
        lmins = lmins + 1;
        if (lmins > 59)
        {
            lmins = 0;
            lhours = lhours + 1;
            if (lhours > 23)
            {
                lhours = 0;
                ldays = ldays + 1;
            }
        }
    }

    lblTimerDisplay.Text = ldays + ":" + lhours + ":" + lmins + ":" + lsecs + ":";
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-18 00:48:21

为什么不使用Stopwatch类呢?

代码语言:javascript
复制
System.Diagnostics.Stopwatch _sw = new System.Diagnostics.Stopwatch();
private void start_click()
{
    if (!_sw.IsRunning)
    {
        _sw.Start();
    }
    else
    {
        _sw.Stop();
        _sw.Reset();
    }
}
private void Each_Tick(object sender, EventArgs e)
{
    lblTimerDisplay.Text = _sw.Elapsed.ToString();
}
票数 5
EN

Stack Overflow用户

发布于 2013-04-18 07:23:48

另一种简单的方法是在初始化计时器时保存DateTime.UtcNow,然后从当前DataTime.UtcNow中减去它。

在计时器初始化时:

代码语言:javascript
复制
DateTime startTime = DateTime.UtcNow;

在滴答中:

代码语言:javascript
复制
TimeSpan elapsedTime = DateTime.UtcNow - startTime; 

然后,您可以使用TimeSpan参数来获取要显示的日、小时、分钟和秒。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16065665

复制
相关文章

相似问题

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