天天看點

UWP 線上程裡操作UI

如下函數,

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));
            }

        }