Вот как мой код настроен. Однако я получаю исключение при обновлении myUIElement в Method2.Знаменитый вызывающий поток не может получить доступ к этому объекту, потому что другая проблема
«вызывающий поток не может получить доступ к этому объекту, потому что другой нить владеет.
Если что-нибудь после AWAIT всегда можно назвать на UI потоке? Что я здесь делаю неправильно?
private async void Method1()
{
// I want to wait until Method2 is completed before doing anything else in Method1
await Task.Factory.StartNew(() => Method2());
}
private async void Method2()
{
// Reading few things from configuration etc
await Task.Factory.StartNew(() => SomeAPILoadDataFromSomewhere());
myUIElement.Text = "something useful has happened";
}
}
Это вызывает зависание приложения в Method2, когда пользовательский интерфейс был взломан. – BKS
@johnsmith Тогда вы не вызываете 'Method1' из потока пользовательского интерфейса, и вы должны быть. Или вы блокируете поток пользовательского интерфейса, когда вы не должны блокировать поток пользовательского интерфейса. – Servy
Жаль, что это было плохо. Он работал как диаграмма – BKS