Как упоминалось в комментарии, проблема здесь в использовании .ConfigureAwait(false)
.
С помощью ConfigureAwait(false)
вы говорите компилятору: «после выполнения этого ожидаемого метода не возвращайтесь к текущему контексту, я в порядке». В некоторых случаях это может быть подходящая оптимизация или даже защита от взаимоблокировки, особенно когда вы пишете библиотеку классов.
Однако вы обычно не должны использовать ее в обратных вызовах из потока пользовательского интерфейса, например кейс. В UWP и в большинстве UI-фреймворков вы можете изменять UI только из основного UI-потока, иначе вы получите именно ту ошибку, которую упомянули. Итак, вам нужно, чтобы был возвращен в тот же контекст после завершения ожидаемого метода.
TL; DR: Удалить ConfigureAwait(false)
, не используйте его в async
методы, вызываемые из потока пользовательского интерфейса.