1

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

UI关联的BackgroundTask做同样的事情,甚至更多。

但是,远程服务器每次登录只允许一个会话,而我只有一个登录到该服务器。因此,我需要一种策略来确保这两者中的任何一个都处于活动状态,而不是两者都处于活动状态。

目前,我存储了一个值LocalSettings来指示 UI 是否打开。如果 UI 关闭,BackgroundTask它将照常工作。如果UI打开,则BackgroundTask不会执行任何操作。

这工作正常,除了当BackgroundTask它处于运行中间并启动 UI 时。我需要一种BackgroundTask在 UI 启动时立即取消它的方法,以便 UI 可以使用登录到远程服务器。关于如何实现这一点的任何提示或建议?

4

1 回答 1

0

感谢Dave Smits的解决方案。

简而言之:

  • 在方法中注册Cancellation事件。Run
  • Cancellation事件处理程序中确保已连接的会话已断开连接。
  • OnLaunchedApp对象中引发事件时Unregister,引发任务Cancellation事件的任务。
于 2013-06-15T13:10:43.757 回答