想做一个定时删除的服务,打算每天0点(或者其他某个时刻)时候执行删除操作,
1。对于Timer来说,应该设置多长的时间间隔触发比较合适
2。设置好触发时间后,到了那个时刻,怎么判断好呢?

解决方案 »

  1.   

    1。对于Timer来说,应该设置多长的时间间隔触发比较合适
    1秒
    2。设置好触发时间后,到了那个时刻,怎么判断好呢?
    TimeSpan ts = DateTime.Now - DateTime.Parse("00:00:00")
    if (ts.Seconds == 0 && ts.Hours==0&&ts.Minutes==0)
    {
      //TODO:
    }
      

  2.   


      public class TimerWorking : TimerBase
        {
            public TimerWorking()
                : base( 1000 )
            {
                this.timer.AutoReset = true;
            }        public override void timer_Elapsed( object sender , ElapsedEventArgs e )
            {
                DateTime dateTime = DateTime.Now;
                if ( dateTime.Hour == 11 && dateTime.Minute == 7 )
                {                //codeing...                //一分钟内只执行一次
                    this.timer.Stop();
                    System.Threading.Thread.Sleep( 60000 );
                    this.timer.Start();
                }
            }
        }
        public abstract class TimerBase : IDisposable
        {
            public Timer timer = null;        private bool _alreadyDisposed = false;        public TimerBase( int Interval )
            {
                timer = new Timer( Interval );
                timer.AutoReset = false;
                timer.Elapsed += new ElapsedEventHandler( timer_Elapsed );
            }        public abstract void timer_Elapsed( object sender , ElapsedEventArgs e );        public void Dispose()
            {
                Dispose( true );
                GC.SuppressFinalize( this );
            }        protected virtual void Dispose( bool isDisposing )
            {
                if ( _alreadyDisposed )
                    return;
                if ( isDisposing )
                {
                    if ( this.timer != null )
                    {
                        this.timer.Stop();
                        this.timer.Close();
                        this.timer.Dispose();
                    }
                }
                _alreadyDisposed = true;
            }
        }