如下函數,
public async Task ShowMessageDialog(string text)
{
if (Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.HasThreadAccess)
{
//操作UI
}
else
{
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () => await ShowMessageDialog(text));
}
}
例如線上程中顯示彈窗的函數如下,
public async Task ShowMessageDialog(string text)
{
if (Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.HasThreadAccess)
{
var msgDialog = new MessageDialog(text) { Title = "Warmming" };
msgDialog.Commands.Add(new UICommand("OK"));
await msgDialog.ShowAsync();
}
else
{
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () => await ShowMessageDialog(text));
}
}