Rob*_*iel 1 c# background windows-8 windows-runtime windows-store-apps
我想通过后台任务更新我的辅助磁贴.我的问题是,迭代所有固定的瓷砖SecondaryTile.FindAllAsync();失败并退出我的背景任务代码1.
我不知道,为什么不可能这样做,为什么我没有任何例外以及为什么这在主应用程序中有效.这可能是一个记忆问题吗?
我的代码看起来像这样:
public sealed class SecondaryTileUpdater : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
var list = await SecondaryTile.FindAllAsync(); // Here it fails :(
foreach (SecondaryTile liveTile in list)
{
// Update Secondary Tiles
// (...)
}
}
}Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
The program '[5644] backgroundTaskHost.exe: Managed (v4.0.30319)' has exited with code 1 (0x1).Run Code Online (Sandbox Code Playgroud)
任何想法,可能是什么原因?感谢您的任何帮助!
等待异步方法后,您的任务即将结束.请求延迟以使您的异步代码有时间执行.
public sealed class SecondaryTileUpdater : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
//HERE: request a deferral
var deferral = taskInstance.GetDeferral();
var list = await SecondaryTile.FindAllAsync(); // Here it fails :(
foreach (SecondaryTile liveTile in list)
{
// Update Secondary Tiles
// (...)
}
//HERE: indicate you are done with your async operations
deferral.Complete();
}
}
Run Code Online (Sandbox Code Playgroud)