首页 新闻 搜索 专区 学院

Monitor.TryEnter相关问题

0
[待解决问题]

代码示例(私有静态锁定对象)

private static object objLock= new object();

代码示例(方法)

if (Monitor.TryEnter(objLock))
{
try
{
//执行具体的事务
}
catch (Exception ex)
{
return Error( ex.Message);
}
finally
{
Monitor.Exit(objLock);
}
}else {
return Error("业务繁忙,请重新尝试。");
}

问题

1、objLock对象一直在,一直返回"业务繁忙,请重新尝试。",只有重启IIS才会释放对象
2、负载均衡的情况下,是否适用

cker90的主页 cker90 | 菜鸟二级 | 园豆:256
提问于:2022-03-24 16:45
< >
分享
所有回答(1)
0

在负载均衡转发多台服务器的情况下不适用,建议使用分布式锁,比如基于 redis 的分布式锁 RedLock,.net 客户端可以用 RedLock.net https://github.com/samcook/RedLock.net

dudu | 园豆:36499 (高人七级) | 2022-03-24 16:54

可以直接改成数据库锁来解决么,不使用redis的分布式锁的话

支持(0) 反对(0) cker90 | 园豆:256 (菜鸟二级) | 2022-03-29 22:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册