Windows runtime 如果UI打开,Metro应用程序将阻止BackgroundTask运行

Windows runtime 如果UI打开,Metro应用程序将阻止BackgroundTask运行,windows-runtime,microsoft-metro,c#-5.0,winrt-async,Windows Runtime,Microsoft Metro,C# 5.0,Winrt Async,我有一个BackgroundTask,它连接到远程服务器并执行某种操作、下载、上载等。此任务每15分钟运行一次 与BackgroundTask相关联的UI也做同样的事情,而且做得更多 但是,远程服务器只允许每次登录一个会话,而我只有一次登录到该服务器。因此,我需要一个策略来确保这两个项目中的任何一个都是积极的,而不是两者都是积极的 目前,我在LocalSettings中存储了一个值,该值指示UI是否打开。如果用户界面关闭,BackgroundTask将按照正常方式完成其工作。如果UI打开,则Ba

我有一个
BackgroundTask
,它连接到远程服务器并执行某种操作、下载、上载等。此任务每15分钟运行一次

BackgroundTask
相关联的
UI
也做同样的事情,而且做得更多

但是,远程服务器只允许每次登录一个会话,而我只有一次登录到该服务器。因此,我需要一个策略来确保这两个项目中的任何一个都是积极的,而不是两者都是积极的

目前,我在
LocalSettings
中存储了一个值,该值指示UI是否打开。如果用户界面关闭,
BackgroundTask
将按照正常方式完成其工作。如果
UI
打开,则
BackgroundTask
将不起任何作用

这很好,除了当<代码>后台任务在运行的中间,UI启动时。我需要一种方法,在UI启动时立即取消此

后台任务
,以便UI可以使用远程服务器的登录。关于如何实现这一点,有什么建议吗?

简言之:

  • 运行
    方法中注册
    取消
    事件
  • 取消
    事件处理程序中,确保断开连接的会话
  • App
    对象中引发
    OnLaunched
    事件时,
    Unregister
    引发任务取消事件的任务