锁定期间的例外情况

Vor*_*t3x 6 c# locking

可能重复:
在c#中,如果锁定对象内部发生异常,它是否会保持锁定状态?

当你有这样的代码时会发生什么

  lock(myLock)
  {
    try{
      //some code
    }catch(SomeException e)
    {
      throw e;
    }
  }
Run Code Online (Sandbox Code Playgroud)

myLock会正确发布吗?我有一种情况需要这样做,所以如何编写我自己的Lock,它有一个我可以在try catch的finally方法中调用的显式Release方法.