繁体   English   中英

是否可以提供WinRT服务

[英]Is it possible to make a WinRT service

由于WinRT具有独特的功能,我想知道是否要制作针对WinRT的Windows服务? 如果不可能,是否可以使不可见的WinRT / Metro应用程序变通?

非常感谢。

否是正确答案。 Metro应用程序在Metro Shell内和执行容器内执行,该执行容器在远离系统资源(包括服务)的位置创建沙箱。 因此,地铁应用无法访问本地服务。 同样,由于这个原因,地铁应用程序不能成为服务。

通过Windows Notification Services进行后台任务和推送通知是Metro应用程序在不活动时与用户进行交互的唯一方法。 否则,当应用程序处于非活动状态(不可见)时,其所有线程都将被挂起(与服务不同)。

对于后台任务,它们的活动与Metro应用程序相同,并且每2小时限制在一个CPU秒内(有一个例外)。 推送通知可以更频繁地执行,但只能更新磁贴或举起吐司通知。

Metro应用程序的意图不同于传统的桌面应用程序:

Metro应用程序与体系结构无关(在Intel或Arm上运行)。 Metro应用程序是触摸式的,专为触摸屏构建。 Metro应用程序完全由硬件加速。 Metro应用程序利用经过认证的设备提供的下一代硬件,包括前所未有的电池寿命。 Metro应用程序是Windows应用商店提供的唯一应用程序。

看,选择Metro应用程序确实意味着要放弃桌面应用程序的某些无限功能。 但是,收益也很可观。

不,这是不可能的(通过服务或“不可见”的Metro应用程序)。

您可以运行后台任务,这些任务可能会执行您要执行的任务,但是在不理解您的问题的情况下我无法说。

这取决于您想做什么。

WinRT是一种API,可以从Metro(Windows Store)应用程序和Desktop / C#应用程序进行访问。

但是未公开完整的API-请在此处查看允许您访问的内容: http : //msdn.microsoft.com/zh-cn/library/windows/desktop/hh920511%28v=vs.85%29.aspx

Hanselman展示了如何向WinRT添加参考:

  • 编辑csproj:
 <PropertyGroup> <TargetPlatformVersion>8.0</TargetPlatformVersion> </PropertyGroup> 
  • 然后添加对Core / Windows的引用。

http://www.hanselman.com/blog/HowToCallWinRTAPIsInWindows8FromCDesktopApplicationsWinRTDiagram.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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