小笔记: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; } }
复制代码

 待完善。。。。。。

 

posted @   Johnny Li  阅读(2046)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示