如何在uwp app

时间:2017-03-05 09:01:37

标签: windows dialog uwp background-process

我正在尝试开发一个运行后台任务的应用程序(读取机器的rfid传感器)我想创建另一个报告机器状态的任务,它将检查上次读取传感器的时间,当它超过5分钟时它会提示用户选择等待的原因。在显示之后我希望任务继续检查,因为如果机器在用户从内容对话框中选择内容之前开始工作,我想隐藏内容对话框并继续工作。当然我不是要求完整的代码:)如果你能给出一个可以显示内容对话框并继续运行的后台任务的非常简短的例子,那将是很棒的。我找到的最近的例子就是这个,但我无法理解并实现我的代码Show a modal UI in the middle of background operation and continue

非常感谢。

 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;

                  }

              });

1 个答案:

答案 0 :(得分:1)

BackgroundTask没有任何UI支持,因此无法显示任何UI(包括ContentDialog),因为它没有对UI线程的任何访问权限,但您可以做一些事情。

  • 让BG任务显示ToastNotification(有UI)
  • 不要使用后台任务,拥有一个最小化运行的完整应用程序和一个单独的进程来保持此运行。
  • 在您的示例有效的WPF中执行此操作。 (你还没有说过你有什么理由不能这样做。)
  • 让您的BGTask(可以通过各种方式)向机器上的另一个进程发送消息(或启动),以显示提示。