priorityBb = bb.Transform("epsg:3857").GetAwaiter().GetResult();
Эта строка блокирует ваш поток пользовательского интерфейса из-за вызова GetResult
. Раньше вы правильно использовали async
/ await
, но в этой строке вы смешиваете асин c код с кодом блокировки. Вы должны использовать тот же подход, что и в методе Transform
и await
в результате вместо блокировки, используя GetResult
. Чтобы исправить это, просто измените эту строку на
priorityBb = await bb.Transform("epsg:3857");
Используя GetResult
подобное может привести к тупикам, и в большинстве случаев это не очень хорошая идея. Всякий раз, когда вы можете просто набрать async
/ await
.
Если вы не можете позвонить async
, то ваш звонок не может быть async
. async
/ await
, вероятно, является лучшим подходом здесь, но если по какой-то причине вы не можете его использовать, вы можете дождаться ответа и обработать его в другом потоке, используя Task.Run