using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Text; 
 | 
using System.Threading; 
 | 
  
 | 
namespace Taobao.Top.Link 
 | 
{ 
 | 
    /// <summary>easy timer impl 
 | 
    /// </summary> 
 | 
    public class ResetableTimer 
 | 
    { 
 | 
        //min=50ms by .net impl 
 | 
        private Timer _timer; 
 | 
        private int _periodMillisecond; 
 | 
        public event EventHandler Elapsed; 
 | 
  
 | 
        public ResetableTimer(int periodMillisecond) 
 | 
        { 
 | 
            this._periodMillisecond = periodMillisecond; 
 | 
            this._timer = new Timer(o => 
 | 
            { 
 | 
                if (Elapsed != null) 
 | 
                { 
 | 
                    this.Elapsed(null, null); 
 | 
                } 
 | 
            }, null 
 | 
            , this._periodMillisecond 
 | 
            , this._periodMillisecond); 
 | 
        } 
 | 
        /// <summary>cancel timer 
 | 
        /// </summary> 
 | 
        public void Cancel() 
 | 
        { 
 | 
            if (this._timer == null) 
 | 
                return; 
 | 
            this._timer.Dispose(); 
 | 
            this._timer = null; 
 | 
        } 
 | 
        /// <summary>delay in period 
 | 
        /// </summary> 
 | 
        public void Delay() 
 | 
        { 
 | 
            this._timer.Change(this._periodMillisecond, this._periodMillisecond); 
 | 
        } 
 | 
    } 
 | 
} 
 |