Да, он все еще может зайти в тупик, ConfigureAwait(false)
придется реализовать во всех вложенных ожиданиях, некоторые из которых вы можете не контролировать.
Лучший подход - не полагаться на него, просто не смешивать синхронные и не async
вызовы, пусть Асинхронное / Ожидание распространяется.
Единственный надежный (и противоречивый) способ убедиться, что он не заблокирован (без await
) - это разгрузить / Обернуть в другое задание и Wait
это, или быть в структуре, которая не имеет SynchronizationContext