首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C#中重置计时器?

如何在C#中重置计时器?
EN

Stack Overflow用户
提问于 2009-06-25 05:24:07
回答 6查看 196.5K关注 0票数 126

据我所知,有三个Timer类:System.Threading.TimerSystem.Timers.TimerSystem.Windows.Forms.Timer,但它们都没有一个.Reset()函数可以将当前运行时间重置为0。

是否有具有此功能的BCL类?有没有一种非黑客的方式呢?(我想也许更改它的时间限制可能会重置它)想过重新实现具有此功能的Timer类有多难,或者如何使用其中一个BCL类可靠地实现它?

EN

回答 6

Stack Overflow用户

发布于 2009-06-25 05:31:38

除了System.Threading.Timer之外,所有的计时器都具有等同于Start()和Stop()方法的功能。

所以像这样的扩展方法...

代码语言:javascript
复制
public static void Reset(this Timer timer)
{
  timer.Stop();
  timer.Start();
}

...is只有一种方法。

票数 66
EN

Stack Overflow用户

发布于 2012-11-22 21:04:04

我刚刚给计时器分配了一个新值:

mytimer.Change(10000,0);//重置为10秒

它对我来说很好。

在代码的顶部定义计时器:System.Threading.Timer myTimer;

代码语言:javascript
复制
if (!active)
    myTimer = new Timer(new TimerCallback(TimerProc));

myTimer.Change(10000, 0);
active = true;

private void TimerProc(object state)
{
    // The state object is the Timer object.
    var t = (Timer)state;

    t.Dispose();
    Console.WriteLine("The timer callback executes.");
    active = false;
    
    // Action to do when timer is back to zero
}
票数 4
EN

Stack Overflow用户

发布于 2010-06-30 02:19:25

用于计时器(System.Windows.Forms.Timer)。

先是.Stop,然后是.Start方法,就像重置一样。

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

https://stackoverflow.com/questions/1042312

复制
相关文章

相似问题

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