确保解锁 - 不支持/支持的异常

时间:2017-03-21 06:24:39

标签: c# wcf exception exception-handling locking

让我们考虑以下代码:

lock(someObject) {
  try {

  }
  catch (...) {

  }
}  

如何确保每个lock 始终将被释放?我的意思是一些不受支持的例外。

1 个答案:

答案 0 :(得分:0)

一旦执行通过锁的外支撑,它就会被释放。它不会被释放的唯一方法是锁定(x){}之间的执行永远不会终止,例如......

lock(x)
{
   if (weAreCrazy)
   {
       while(true)
          Console.Writeline("Haven't we already done this?");
   }
}
<-- if (!weAreCrazy)... lock would be released here