我想从后台任务中的存储文件夹中获取所有图像 . 首先在app_entering后台方法中注册后台任务 . 我也可以调试Run方法,但没有一个await方法正在工作 -
public void Run(IBackgroundTaskInstance taskInstance)
{
var differal = taskInstance.GetDeferral();
UpdateUI();
differal.Complete();
}
public async void UpdateUI()
{
StorageFolder folder = await KnownFolders.PicturesLibrary.GetFolderAsync("Wall_e_photos")//here execution stops and backgroundtaskhost exits.
var files = await GetFilesAsync();
foreach (StorageFile file in files)
{
if (file.Name.Contains("wall_e"))
{
}
}
}
从很长一段时间苦苦挣扎..初始后台任务在它开始工作后无效 . 现在存储文件夹问题(获取文件夹时后台任务退出) .
也是为了注意我跟着这个链接 - http://www.codeguru.com/win_mobile/win_store_apps/setting-wallpapers-in-a-windows-8-store-app-with-vb.htm
在那里他们使用了调度程序,如果我使用var dispatcher = MyDispatcher = GetForCurrentThread() . Dispatcher,那么它给出了null引用异常
如果我使用Windows.ApplicationModel.Core.CoreApplication.MainView,那么它无法创建新的视图异常..
请帮我...
1 回答
你有一个问题:
UpdateUI
是一个异步方法,因此方法调用将立即结束(当方法在后台继续执行时) . 因此,您在工作结束前调用differal.Complete();
.解决这个问题的一种简单方法是将deferral作为参数传递给
UpdateUI
方法,并在结尾处完成:另一种方法是将
UpdateUI
更改为async Task
,然后等待其继续: