C# Windows8后台任务与异步任务(延迟)
我想在后台任务winmd上更新活动磁贴C# Windows8后台任务与异步任务(延迟),c#,vb.net,windows-8,windows-runtime,async-await,C#,Vb.net,Windows 8,Windows Runtime,Async Await,我想在后台任务winmd上更新活动磁贴 Public异步子运行(taskInstance作为IBackgroundTaskInstance)实现IBackgroundTask.Run Dim Deleral作为BackgroundTaskDeleral=taskInstance.GetDeleral() UpdateLiveFile() 延期完成 端接头 "及 公共共享异步子更新文件() .... 等待更新图片…一些东西 端接头 如果我这样编写代码,后台任务将在updateTimeImage之
Public异步子运行(taskInstance作为IBackgroundTaskInstance)实现IBackgroundTask.Run
Dim Deleral作为BackgroundTaskDeleral=taskInstance.GetDeleral()
UpdateLiveFile()
延期完成
端接头
"及
公共共享异步子更新文件()
....
等待更新图片…一些东西
端接头
如果我这样编写代码,后台任务将在updateTimeImage
之前退出进程。
这意味着在执行整个过程之前,将到达deleral.Complete()
因此,我尝试将UpdateLiveFile更改为异步任务,如:
Public异步子运行(taskInstance作为IBackgroundTaskInstance)实现IBackgroundTask.Run
Dim Deleral作为BackgroundTaskDeleral=taskInstance.GetDeleral()
等待UpdateLiveFile()
延期完成
端接头
"及
公共共享异步函数UpdateLiveFile()作为任务
....
端函数
但是编译器抛出了一个类似“将方法签名更改为使用其中一个…”的错误,这可能说明我不能在Windows运行时将函数作为任务启动,而不是在正常的.Net框架中
实际错误消息:方法“BackgroundTasks.NS.UpdateLiveFile()”
在其属性中具有“System.Threading.Tasks.Task”类型的参数
签名。虽然此类型不是有效的Windows运行时类型,但是
实现属于有效Windows运行时类型的接口。考虑
将方法签名更改为使用以下类型之一
而是:''。背景任务
(应为公共和共享功能)
总之,我只想确保在调用deleral.Complete()之前可以完成整个过程。谢谢 请发布实际的编译器错误。将其更改为return Task是正确的解决方案。@Stephen Cleary发布了一条实际的错误消息。请尝试将函数设置为Private。