Dupe: оператор return в процедуре блокировки: внутри или снаружи
Название немного вводит в заблуждение. Я знаю, что вы можете это сделать, но мне интересно, как это повлияет на производительность.
рассмотрим эти два блока кода. (без обработки ошибок)
Этот блок имеет return
вне блокировки
public DownloadFile Dequeue()
{
DownloadFile toReturn = null;
lock (QueueModifierLockObject)
{
toReturn = queue[0];
queue.RemoveAt(0);
}
return toReturn;
}
Этот блок имеет оператор return
внутри блокировки
public DownloadFile Dequeue()
{
lock (QueueModifierLockObject)
{
DownloadFile toReturn = queue[0];
queue.RemoveAt(0);
return toReturn;
}
}
Есть ли разница в коде? Я понимаю, что различия в производительности (если они есть) были бы минимальными, но я определенно задаюсь вопросом, будет ли разница в том, что lock
получит выпуск.