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