C# WPF MetroDialog线程无法访问对象,因为另一个线程拥有该对象
我试图实现一个输入对话框,但我似乎不明白为什么在单击“确定”或“取消”时会出现线程问题 下面是我的代码段,在这里我创建了对话框并展示了它,我看了一些例子并给出了答案,但我不知道我在这里做错了什么C# WPF MetroDialog线程无法访问对象,因为另一个线程拥有该对象,c#,wpf,multithreading,mahapps.metro,C#,Wpf,Multithreading,Mahapps.metro,我试图实现一个输入对话框,但我似乎不明白为什么在单击“确定”或“取消”时会出现线程问题 下面是我的代码段,在这里我创建了对话框并展示了它,我看了一些例子并给出了答案,但我不知道我在这里做错了什么 var metroDialogSettings = new MetroDialogSettings() { AffirmativeButtonText = "OK", NegativeButtonText = "CANCEL", AnimateHide = true, A
var metroDialogSettings = new MetroDialogSettings()
{
AffirmativeButtonText = "OK",
NegativeButtonText = "CANCEL",
AnimateHide = true,
AnimateShow = true,
ColorScheme = MetroDialogColorScheme.Accented,
};
var dialog = new AddStorageAccountDialog(MainWindowHelper.mainWindow, metroDialogSettings);
await Application.Current.Dispatcher.Invoke(async () =>
{
await MainWindowHelper.mainWindow.ShowMetroDialogAsync(dialog);
await dialog.WaitForButtonPressAsync().ContinueWith((m) =>
{
MainWindowHelper.mainWindow.HideMetroDialogAsync(dialog);
});
var displayname = dialog.DisplayName;
var accountname = dialog.AccountName;
var accountkey = dialog.AccountKey;
});
MahApps.Metro的隐藏对话框方法不是一项任务吗?也许你应该把它从continueWith中拿出来,在WaitForButtonPessSync之后在线等待它。我试着把隐藏物移开,但没有用。嗯,你也在等待吗?是的,我在所有异步任务上都放了Wait。我的输入对话框是基于