我在Windows Phone 10中实现了一个应用程序。
在我的后台任务中,当应用程序正在处理某些作业时,它希望调用主项目并实时更新UI。
是否有任何机制可以将事件从后台任务发送到主项目以更新UI?
答案 0 :(得分:0)
//backTask
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
//update ui
UIAction.?Invoke();
});
答案 1 :(得分:0)
是否有任何机制可以将事件从后台任务发送到主项目以更新UI?
您可以注册后台任务的Completed
事件并更新Completed
事件中的用户界面:
注册完整的活动:
var registration= taskBuilder.Register();
registration.Completed += Registration_Completed;
private async void Registration_Completed(BackgroundTaskRegistration sender, BackgroundTaskCompletedEventArgs args)
{
var settings = ApplicationData.Current.LocalSettings;
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
tbResult.Text=settings.Values["BackgroundResult"].ToString();
});
}
的Xaml:
<StackPanel VerticalAlignment="Center">
<Button Name="btnRegister" Click="btnRegister_Click">
Click Me to register BT
</Button>
<TextBlock Name="tbResult">
Here will show the result
</TextBlock>
</StackPanel>
这是完整的演示:BackgroundTaskSample。