0
の場合は、次のコードを検討します:それぞれこのlock
は常にがリリースされることを保証するためにどのように確保ロック解除 - サポートされていない/サポート例外
lock(someObject) {
try {
}
catch (...) {
}
}
を?たとえば、サポートされていない例外がいくつかあります。
の場合は、次のコードを検討します:それぞれこのlock
は常にがリリースされることを保証するためにどのように確保ロック解除 - サポートされていない/サポート例外
lock(someObject) {
try {
}
catch (...) {
}
}
を?たとえば、サポートされていない例外がいくつかあります。
実行がロックの外側ブレースを通過するとすぐに解除されます。それが解放されない唯一の方法は、ロック(x){}間の実行が決して終了しない場合です。
lock(x)
{
if (weAreCrazy)
{
while(true)
Console.Writeline("Haven't we already done this?");
}
}
<-- if (!weAreCrazy)... lock would be released here
したがって、サポートされていない例外はどうですか?コードの流れは常に '}'に達しますか? –
コードがどのように中括弧を抜けているかは関係ありません。using(y){}文と似ていますが、usingステートメントはlockを解放する代わりにyでdisposeを呼び出します。 – Mick
私の場合はロックが解放されます。ありがとう –