我有以下代码在我的 UWP 应用程序的后台线程中显示 ContentDialog:
await CoreWindow
.GetForCurrentThread()
.Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
async () =>
{
ContentDialog noWifiDialog = new ContentDialog
{
Title = "No wifi connection",
Content = "Check your connection and try again.",
CloseButtonText = "Ok"
};
ContentDialogResult result = await noWifiDialog.ShowAsync();
}
);
问题是当该代码运行时,我的应用程序的 UI 完全冻结并且没有任何反应。
我尝试使用
CoreDispatcher
扩展方法,社区工具包的扩展方法 但这些都没有用。用户界面仍然保持冻结状态,并且不会显示对话框。
如何在 UWP 应用程序中显示来自后台线程的对话框?
请改用 Window.Dispatcher 属性。
就像这样:
await Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
async () =>
{
ContentDialog noWifiDialog = new ContentDialog
{
Title = "No wifi connection",
Content = "Check your connection and try again.",
CloseButtonText = "Ok"
};
ContentDialogResult result = await noWifiDialog.ShowAsync();
});