![](/img/trans.png)
[英]Windows 10 UWP - stop background task if foreground app is running
[英]Triggering event in foreground when background task is running at the same time?
我在Windows存储应用程序的单独项目(dll)中有后台任务。
收到推送通知时,将触发我的后台任务。 在不使用应用程序时发生的大部分时间。 通知将保存,并在再次加载应用程序时,将根据收到的内容触发操作。 使用LocalSettings可以轻松实现,应用程序可以检查是否在加载时存储了某些内容。
但是,当应用程序处于前台时,我想在实际的应用程序中触发一些操作。 如果不经常查看LocalSettings,是否可以使用一种机制使任务与主应用程序通信以触发某些内容?
没有一个更具体的问题,很难提供具体的建议。
但是,我相信在WinRT上,最好的选择是使用套接字在后台进程和前台进程之间进行通信。 最好使用命名管道,但WinRT似乎不支持该命名管道。
WinRT支持的另一种替代方法是命名互斥体。 但这不能传输数据。 它只能用于从一个进程向另一个进程提供某种信号,并且没有内置的异步机制来等待互斥锁,而套接字可以异步使用。
因此,恕我直言,基于套接字的方法是此类通知的更好选择。
我实际上没有在WinRT上专门做过这种事情,只是在其他情况下。 但是,您可能遇到的一个限制似乎是WinRT仅允许来自同一程序包的两个程序之间的通信。 请参阅Metro Style App中是否有可用的进程间通信机制? 关于这一点的更多细节。 我尚不清楚这是否真的适用于套接字,我还没有对其进行测试。 不过,尝试起来很容易。
另一种选择是使用WNS: 发送通知(Windows运行时应用程序) 。 为了您的目的,我认为“本地通知”模型是合适的。 大多数通知文档似乎都是特定于基于UI的通知(平铺,徽章和吐司),但是还有一个基本的“原始”通知API: Windows.Networking.PushNotifications命名空间
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.