Почему в асинхронных методах нельзя использовать lock и какие есть альтернативы?

C#асинхронностьблокировкимногопоточностьразработка