在一个C#线程应用中,如果我锁定了一个对象,比如一个队列,如果发生异常,该对象会保持锁定状态吗?这是伪代码:
int ii;
lock(MyQueue)
{
MyClass LclClass = (MyClass)MyQueue.Dequeue();
try
{
ii = int.parse(LclClass.SomeString);
}
catch
{
MessageBox.Show("Error parsing string");
}
}
据我理解,在 catch 后面的代码不会执行,但我一直在想这个锁是否会被释放。