c# - 在 C# 中,我如何安全地退出带有 try catch block 的锁?

标签 c#

这是一个在锁内发生异常的示例,带有 try-catch block 。

int zero = 0;
int j = 10;

lock (sharedResource.SyncRoot)
{
    try
    {
        j = j / zero;
    }
    catch (DivideByZeroException e)
    {
        // exception caught but lock not released
    }
}

我如何安全地释放锁扣?

最佳答案

不会自动释放吗?

来自MSDN的锁手段

System.Threading.Monitor.Enter(x);
try {
   ...
}
finally {
   System.Threading.Monitor.Exit(x);
}

所以你不必费心。

关于c# - 在 C# 中,我如何安全地退出带有 try catch block 的锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/639493/

相关文章:

c# - 如何找出我的错误来自哪里?

C# asp.net 按钮单击事件中的 JavaScript 函数不起作用

c# - 猜数字游戏还没开始就结束了

c# - 从编译器的角度来看,字符串是怎样的?

c# - 无法在 Visual Studio 2017 Enterprise MSTest Selenium 单元测试 C# 中找到/添加订购的测试项目到我的项目

c# - 如何正确地将日期时间从 c# 传递到 sql?

c# - 获取重复对象的列表,包括所有出现的 C#

c# - Convert.ToInt32 只支持 4 个碱基?

c# - 与 Code First 的单向一对多关系

c# - C# 中带有非捕获组的正则表达式