Windows 如何在uwp应用程序中从后台任务显示内容对话框
我正在尝试开发一个运行后台任务(读取机器的rfid传感器)的应用程序。我想创建另一个任务来报告机器状态,它将在上次读取传感器时进行检查,当超过5分钟时,它将提示用户选择等待的原因。显示后,我希望任务继续检查,因为若机器在用户从内容对话框中选择内容之前开始工作,我希望隐藏内容对话框并继续工作。当然,我不是要完整的代码:)如果您能给出一个背景任务的非常简短的示例,它可以显示内容对话框并继续运行,那就太好了。我发现的最接近的例子是这个,但我无法理解并实现我的代码 多谢各位Windows 如何在uwp应用程序中从后台任务显示内容对话框,windows,dialog,uwp,background-process,Windows,Dialog,Uwp,Background Process,我正在尝试开发一个运行后台任务(读取机器的rfid传感器)的应用程序。我想创建另一个任务来报告机器状态,它将在上次读取传感器时进行检查,当超过5分钟时,它将提示用户选择等待的原因。显示后,我希望任务继续检查,因为若机器在用户从内容对话框中选择内容之前开始工作,我希望隐藏内容对话框并继续工作。当然,我不是要完整的代码:)如果您能给出一个背景任务的非常简短的示例,它可以显示内容对话框并继续运行,那就太好了。我发现的最接近的例子是这个,但我无法理解并实现我的代码 多谢各位 await CoreApp
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
if (DialogisOpen == false)
{
//its been 3 min since machine is not working so we are showing user dialog to ask for a reason
mp = new MainPage();
mp.TestUi();
DialogisOpen = true;
}
});
BackgroundTask没有任何UI支持,因此无法显示任何UI(包括ContentDialog),因为它无法访问UI线程,但您可以做一些事情来代替它
- 让BG任务显示ToastNotification(具有UI)
- 不要使用后台任务,使用一个运行最小化的完整应用程序和一个单独的进程来保持此运行
- 在您的示例工作的WPF中执行此操作。(你还没有说你为什么不能这么做。)
- 让您的BGTask向(或启动)计算机上可以显示提示的另一个进程发送消息(以各种方式之一)