2017-03-21 15 views

答えて

0

実行がロックの外側ブレースを通過するとすぐに解除されます。それが解放されない唯一の方法は、ロック(x){}間の実行が決して終了しない場合です。

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

したがって、サポートされていない例外はどうですか?コードの流れは常に '}'に達しますか? –

+0

コードがどのように中括弧を抜けているかは関係ありません。using(y){}文と似ていますが、usingステートメントはlockを解放する代わりにyでdisposeを呼び出します。 – Mick

+0

私の場合はロックが解放されます。ありがとう –

関連する問題