关于锁的问题

stevenjin CSDN会员 stevenjin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在使用定时任务时,有时数据量少,可能1秒内多次执行方法。
这里想用锁的方案,即在方法没有执行完之前,不可进入锁内的代码。
但实际是1钞内进入了3到4次(触发器设置了为100毫秒)。
请教锁的正确用法,谢谢!

this.Timer = new System.Timers.Timer(100); //触发间隔100毫秒
this.Timer.Elapsed += new ElapsedEventHandler(Timer_Elapsed);

private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{//100毫秒触发
try
{
UpdateEveryHour();
}

catch (Exception ex)
{
loginfo.Info(ex.Message);
}
}

static object locker = new object();
private static void UpdateEveryHour()
{
lock (locker)//防止并发(1秒内执行多次)
{
//清理数据.......
}

}


...全文

相关推荐

评论 13
收藏 已收藏
分享
返回顶部
stevenjin CSDN会员
C# 111,129 成员 642,540 内容