我仍然试图围绕通用应用程序的XamlRenderingBackgroundTask的介绍。我正在计划我的下一个应用程序,我希望它在磁贴上有自定义XAML位图。现在我对此有几个问题:
所有示例和参考资料都建议在C ++中编写XamlRenderingBackgroundTask。虽然我一般不反对,但在呈现图块时访问应用程序的功能仍然存在一些问题。例如。我想从服务器获取最新的更新,并在本地计算我应该在磁贴上显示的内容。在完整的应用程序中使用相同的功能,并使用C#编写,我认为在C ++中实现整个功能将是很多工作(服务器通信,SQLite和Linq使用)。 This sample这里显示了XamlRenderingBackgroundTask的一个实现,但它的功能相当有限,因为它只能及时显示。
我想到了两个可能来解决XamlRenderingBackgroundTask限制的问题,我想就最好的方法得到一些看法:
创建两个后台任务,一个在C#中,另一个在C ++中。 C#后台任务计算将使用的数据并将其存储在本地用于C ++后台任务。 这里的问题是:内存/ CPU配额是否会达到极限?我如何保证序列(首先是C#,然后是C ++)?
将C#逻辑存储在WinRT组件中,并从C ++后台任务引用它。 我无法想象这是否有效,因为C#组件将加载CLR运行时,我将达到内存限制。
我还有另外一个关于后台任务的问题:
512 MB RAM手机设备的内存限制是累积的还是16 MB,是否应该永远不会超过? E.g:
我创建一个图像并更新占用14 MB的图块。如果我冲洗瓷砖相关等等,我是否还有16 MB可以使用或只有剩余的2 MB?
我问的原因是,因为我想允许用户将多个(辅助)磁贴固定到开始屏幕。如果我只能创建一次图块,它就永远不会更新(使用XAML图像)其他图块。
我对此有任何想法感激不尽。