Как правильно использывать return при Lock()? - C#
Формулировка задачи:
Добрый день,
имеется такой код:
Вопрос в том что как поведёт себя Lock если return был вызван до того как была закрыта скобка блока Lock?
Блок Lock останется заблокированным или retur также разблокирует lock?
Или правильнее делать как:
1) Третий переменной "bool otvet" присваивается ответ рабочей части кода.
2) Происходит разблокирование Lock.
3) Возвращается "return otvet;".
public bool Lock_Update2_test(string MessTocken, string Message) { //*Используем*маркер*блокировки lock (threadLock) { if (LockSt.Tocken == MessTocken) { //Токен совпал return true; } else { //Токен не совпал return false; } } }
public bool Lock_Update(string MessTocken, string Message) { bool otvet = false; // Используем маркер блокировки lock (threadLock) { if (LockSt.Tocken == MessTocken) { //Token sovpal otvet = true; //Otvet samoj funkcii } else { //Token ne sovpal otvet = false; //otvet somoj funkcii } } return otvet; }
Решение задачи: «Как правильно использывать return при Lock()?»
textual
Листинг программы
Monitor.Enter(threadLock); try { if (LockSt.Tocken == MessTocken) { //Токен совпал return true; } else { //Токен не совпал return false; } } finally { Monitor.Exit(threadLock); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д