Почему мы получаем это исключение system.windows.markup.xamlparseexception: 'must create dependencysource on same thread as the dependencyobject.' при обновлении пользовательского интерфейса ?
я пытался получить детали с помощью задачи асинхронно и
обновление пользовательского интерфейса
но я всегда получаю исключение
Система.Окна.Разметка.XamlParseException: 'необходимо создать DependencySource в том же потоке, что и DependencyObject.
Что я уже пробовал:
public void performwindowchanges() { Task<bool> t = Task.Run(async () => { string authUrl ="url"; string data = await NetworkUtility.GetInstance().GetHttpRequestAsync(authUrl, 1); return true; }); t.ContinueWith(async (t1) => { if (t1.Result) { string status = await Applicationmeth.GetUserDetails(); if (status == "Success") this.Dispatcher.Invoke(() => { InitializeMainwindow();//facing issue in this method }); } }); } Private void InitializeMainwindow() { screenWindow = new ScreenWindowControl(); Application.Current.MainWindow = screenWindow; screenWindow.Show();//HERE IAM GETTING EXCEPTION AS Must create DependencySource on same Thread as the DependencyObject. this.Close(); }
Richard MacCutchan
Вы пытаетесь обновить пользовательский интерфейс из фонового потока, что недопустимо. Google для "UI Crossthread XAML", и вы найдете много предложений.