Да, асинхронная задача часто (если даже не всегда) выполняет обратный вызов в потоке, отличном от потока пользовательского интерфейса. Следовательно, существует свойство Dispatcher для всего, что имеет пользовательский интерфейс (и даже того, что не имеет). Вы должны убедиться, что код, который должен выполняться в пользовательском интерфейсе, вызывается в потоке пользовательского интерфейса.
К сожалению, очень мало документации о том, что можно и нельзя изменять из потока, не являющегося пользовательским интерфейсом, скорее всего, потому что это может измениться от одной версии к другой.