Так мы подошли к третьему правилу: никогда не вызывайте неподконтрольный вам код, удерживая блокировку. Если нужно вызвать любой неподконтрольный вам код, то вызывайте его после снятия блокировок.
C# Concurrency. Асинхронное программирование и многопоточность
·
Нир Добовицки