Я не понимаю (и не могу найти документацию достаточно ясно): при использовании ключевого слова lock в методе async: будет ли поток заблокирован, если объект уже заблокирован или он вернет задачу в приостановленном состоянии (не блокируя поток и возвращающийся при освобождении блокировки)?C# Lock and Async Method
В приведенном ниже коде будет ли линия перекрывать нить? Если он блокирует поток (это то, что я думаю), существует ли стандартное не блокирующее решение? Я рассматриваю использование AsyncLock, но сначала я хотел попробовать что-то стандартное.
спасибо.
private object myLock = new object();
private async Task MyMethod1(){
lock (myLock) {// <---- will this line cause a return of the current method as an Await method call would do if myLock was already locked.
....
}
}
// other methods that lock on myLock
Посмотрите здесь для хорошего объяснения HTTP: // StackOverflow ,com/questions/7612602/why-cant-i-use-the-wait-operator-in-the-body-of-a-lock-statement – atomaras
Неверный ответ принят –