在C#中我怎么能安全地退出一个内嵌try catch块的锁?

这是一个例子,一个例子发生在一个锁,一个try-catch块.

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);
}

所以你不需要打扰.

http://stackoverflow.com/questions/639493/in-c-sharp-how-can-i-safely-exit-a-lock-with-a-try-catch-block-inside

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在C#中我怎么能安全地退出一个内嵌try catch块的锁?