让我们考虑以下代码:
lock(someObject) {
try {
}
catch (...) {
}
}
如何确保每个lock
始终将被释放?我的意思是一些不受支持的例外。
答案 0 :(得分:0)
一旦执行通过锁的外支撑,它就会被释放。它不会被释放的唯一方法是锁定(x){}之间的执行永远不会终止,例如......
lock(x)
{
if (weAreCrazy)
{
while(true)
Console.Writeline("Haven't we already done this?");
}
}
<-- if (!weAreCrazy)... lock would be released here