是否可以制作WinRT服务

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

非常感谢。

不是正确的答案。 metro应用程序在Metro shell内部和执行容器内执行,该容器创建远离系统资源(包括服务)的沙箱。 因此,metro应用程序无法访问本地服务。 同样,因此,metro应用程序不能成为服务。

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

至于后台任务,它们的活动受地铁应用程序的限制,并且每2小时限制为一个CPU秒(有一个例外)。 推送通知可以更频繁地执行,但只能更新磁贴或发出Toast通知。

metro应用程序的意图与传统桌面应用程序不同:

Metro应用程序独立于架构(在intel或arm上运行)。 Metro应用程序是触摸式的,专为触摸屏而设计。 Metro应用程序完全硬件加速。 Metro应用程序利用经认证设备提供的下一代硬件,包括前所未有的电池寿命。 Metro应用程序是Windows商店提供的唯一应用程序。

看,选择一个城域应用确实意味着承认桌面应用程序的一些无限的力量。 然而,收益也很重要。

不,这是不可能的(服务或“隐形”地铁应用程序枯萎)。

你可以运行后续任务,可以做你想做的事,但不理解你的问题,我不能说。

这取决于你想做什么。

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

但是,不会公开完整的API – 请参阅此处允许访问的内容: http : //msdn.microsoft.com/en-us/library/windows/desktop/hh920511%28v=vs.85%29.aspx

Hanselman演示了如何为WinRT添加引用:

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

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