在c#线程应用程序中,如果我要锁定一个对象,假设是一个队列,如果发生异常,该对象是否会保持锁定状态?以下是伪代码:
int ii;
lock(MyQueue)
{
MyClass LclClass = (MyClass)MyQueue.Dequeue();
try
{
ii = int.parse(LclClass.SomeString);
}
catch
{
MessageBox.Show("Error parsing string");
}
}
据我所知,捕获后的代码不会执行——但我一直在想锁是否会被释放.