繁体   English   中英

同时运行后台任务时在前台触发事件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM