小筆記:Timer定時間隔時間操作


小筆記:Timer定時間隔時間操作,后面有時間再補充和完善:

 

public class TimingSvc
    {
        /// <summary>
        /// 定時器,執行定時任務
        /// </summary>
        private static Timer m_Timer;
        static ReaderWriterLockSlim rwLock = new ReaderWriterLockSlim();
private static int FlushTimeOut = 5000;
private TimingSvc() { //初始化操作 TimeSpan timeSpan = new TimeSpan(20000); DateTime nextTime = DateTime.Now.AddMilliseconds(20000); timeSpan = nextTime.Subtract(DateTime.Now); m_Timer = new Timer(new TimerCallback(OnTimedEvent), null, (long)timeSpan.TotalMilliseconds, Timeout.Infinite); } public void Close() { m_log.LogEvent("定時任務停止."); m_Timer.Dispose(); } /// <summary> /// 定時任務的執行 /// </summary> protected void OnTimedEvent(object state) { //LogEvent("********開始執行定時任務********"); //開始執行,無限等待 m_Timer.Change(Timeout.Infinite, Timeout.Infinite); //執行任務邏輯,刷新數據 //TODO //下次間隔20s執行 DateTime nextTime = DateTime.Now.AddMilliseconds(20000); TimeSpan timeSpan = nextTime.Subtract(DateTime.Now); m_Timer.Change((long)timeSpan.TotalMilliseconds, Timeout.Infinite); return; } public void DoOperation() { //寫入加鎖 if (rwLock.TryEnterWriteLock(FlushTimeOut)) { try { //TODO BLL } catch (Exception ex) { LogError("賦值異常:" + ex.Message); } finally { rwLock.ExitWriteLock(); } } return; } }

 待完善。。。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM