新闻中心

EEPW首页>消费电子>设计应用> Timer定时器的设计方法

Timer定时器的设计方法

作者: 时间:2018-09-04 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/201809/388353.htm

  /**////

  /// 委托

  ///

  private TimerCallback timerDelegate;

  /**////

  /// 静态实例

  ///

  private static readonly PaperManager self = new PaperManager();

  /**////

  /// 构造函数

  ///

  public PaperManager()

  {

  timerDelegate = new TimerCallback(CheckStatus);

  }

  /**////

  ///

  ///

  ///

  public static PaperManager getInstance()

  {

  return self;

  }

  /**////

  /// 设置启动时间间隔

  ///

  ///

  ///小时

  ///分钟

  ///

  ///毫秒

  public void setDueTime(int days, int hours, int minutes, int seconds, int milisecond)

  {

  dueTime = new TimeSpan(days, hours, minutes, seconds, milisecond);

  }

  /**////

  /// 设置回调时间间隔

  ///

  ///

  ///小时

  ///分钟

  ///

  ///毫秒

  public void setPeriod(int days, int hours, int minutes, int seconds, int milisecond)

  {

  period = new TimeSpan(days, hours, minutes, seconds, milisecond);

  }

  /**////

  /// 开始

  ///

  public void Start()

  {

  AutoResetEvent autoEvent = new AutoResetEvent(false);

  dueTime = TimeSpan.FromSeconds(0);

  period = TimeSpan.FromSeconds(10);

  iTimer = new Timer(timerDelegate, autoEvent, dueTime, period);

  autoEvent.WaitOne(5000, false);

  iTimer.Change(dueTime, period);

  }

  /**////

  /// 停止

  ///

  public void Stop()

  {

  iTimer.Dispose();

  }

  /**////

  /// 执行一次

  ///

  public void ExcuteOneTime()

  {

  if (iTimer != null)

  {

  iTimer.Dispose();

  }

  //如果 period 为零 (0) 或 -1 毫秒,而且 dueTime 为正,则只会调用一次 callback;

  //计时器的定期行为将被禁用,但通过使用 Change 方法可以重新启用该行为。

  setDueTime(0, 0, 0, 0, 1);

  setPeriod(0, 0, 0, 0, -1);

  AutoResetEvent autoEvent = new AutoResetEvent(false);

  iTimer = new Timer(timerDelegate, autoEvent, dueTime, period);

  autoEvent.WaitOne(5000, false);

  iTimer.Change(dueTime, period);

  }

  /**////

  /// 行为

  ///

  ///

  public void CheckStatus(object nObject)

  {

  AutoResetEvent autoEvent = (AutoResetEvent)nObject;



关键词:

评论


相关推荐

技术专区

关闭