加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 当后台任务同时运行时在前台触发事件?

发布时间:2020-12-15 22:10:30 所属栏目:百科 来源:网络整理
导读:我在 Windows应用程序的单独项目(dll)中有一个后台任务. 收到推送通知时会触发我的后台任务.应用程序未使用时大部分时间都会发生.通知已保存,再次加载应用程序时,将根据收到的内容触发操作.使用LocalSettings很容易实现,应用程序可以检查是否在加载时存储了
我在 Windows应用程序的单独项目(dll)中有一个后台任务.

收到推送通知时会触发我的后台任务.应用程序未使用时大部分时间都会发生.通知已保存,再次加载应用程序时,将根据收到的内容触发操作.使用LocalSettings很容易实现,应用程序可以检查是否在加载时存储了某些内容.

但是,当应用程序位于前台时,我想在实际应用程序中触发某些内容.如果没有经常查看LocalSettings,我是否可以使用一种机制让任务与主应用程序通信以触发某些操作?

解决方法

没有更具体的问题,很难提供具体的建议.

但是,在WinRT上,我认为您最好的选择是使用套接字在后台进程和前台进程之间进行通信.命名管道更可取,但WinRT似乎不支持.

WinRT支持的另一种替代方案是命名互斥锁.但那无法传输数据;它只能用于从一个进程到另一个进程提供某种信号,并且没有用于等待互斥锁的内置异步机制,而套接字可以异步使用.

所以恕我直言,基于套接字的方法是这种通知的更好选择.

我没有在WinRT上实际做过这种事情,只是在其他情况下.但是您可能遇到的一个限制似乎是WinRT只允许来自同一个程序包的两个程序之间的通信.有关该点的更多详细信息,请参见Is there any Inter Process Communication mechanism available in Metro Style App?.我不完全清楚这是否真的适用于套接字,我还没有测试过它.你可以轻松尝试一下.

另一种选择可能是使用WNS:Sending notifications (Windows Runtime apps).出于您的目的,我认为“本地通知”模型是合适的.大多数通知文档似乎特定于基于UI的通知(磁贴,徽章和吐司),但也有一个基本的“原始”通知API:Windows.Networking.PushNotifications namespace

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读