C# 如何在前台应用处于活动状态时停止运行scheduledtask windows phone 8

C# 如何在前台应用处于活动状态时停止运行scheduledtask windows phone 8,c#,windows-phone-8,windows-phone,scheduled-tasks,C#,Windows Phone 8,Windows Phone,Scheduled Tasks,我之前发布过关于后台计划任务必须访问SQLite DB和前台应用程序使用的隔离组织的同步问题 为了简化这个过程,我只想阻止我的后台任务运行Altogher,它不一定要运行,尤其是在前台应用程序处于活动状态时 有办法做到这一点吗 我考虑过使用IsolatedStorage在应用程序启动时设置一个标志,然后在退出时将其删除,然后让后台任务检查设置,并受互斥保护 我认为这个想法在原则上是好的,但我想有时旗帜不会取消,例如,如果电池耗尽。。。这意味着,在打开手机后,如果用户从未正确使用应用程序并退出,后

我之前发布过关于后台计划任务必须访问SQLite DB和前台应用程序使用的隔离组织的同步问题

为了简化这个过程,我只想阻止我的后台任务运行Altogher,它不一定要运行,尤其是在前台应用程序处于活动状态时

有办法做到这一点吗

我考虑过使用IsolatedStorage在应用程序启动时设置一个标志,然后在退出时将其删除,然后让后台任务检查设置,并受互斥保护

我认为这个想法在原则上是好的,但我想有时旗帜不会取消,例如,如果电池耗尽。。。这意味着,在打开手机后,如果用户从未正确使用应用程序并退出,后台任务可能永远不会运行。这可能不是什么大问题

使用这样的标志是实现这种功能的唯一方法吗


多谢

有一个进程间通信机制来实现此功能。 由于前台应用程序和scheduletask都作为不同的进程运行,因此可以使用IPC

请参阅

在OnInvoke方法中,订阅一个命名事件,该事件将在前台应用程序启动/恢复后立即触发


一旦您在后台代理中通过此事件收到信号,只需调用NotifyComplete即可完成。

另一个问题是,当用户打开应用程序时,后台任务可能正在运行,因此您不仅需要一个标志来表示后台任务可以运行,后台任务需要自己的标志来表示当前正忙的任务。如果应用程序正忙,请让用户在打开或激活应用程序时等待(最多25秒)。有人对此有其他想法或经验吗?谢谢