积极答复者
Windows8中的BackgroundTask是否就是在程序关闭后后台运行的事件?是否能够执行项目中的任意一个函数

问题
答案
-
你应该看这个 http://msdn.microsoft.com/zh-CN/library/windows/apps/xaml/Hh868228(v=win.10) 例子http://code.msdn.microsoft.com/windowsapps/push-and-periodic-de225603/
P.S. 后台任务一般不与应用相同进程,所以不能直接调用应用进程中的方法。关于后台任务 建议先阅读其白皮书 http://www.microsoft.com/en-us/download/details.aspx?id=27411
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Bluear 2012年11月19日 7:04
全部回复
-
你应该看这个 http://msdn.microsoft.com/zh-CN/library/windows/apps/xaml/Hh868228(v=win.10) 例子http://code.msdn.microsoft.com/windowsapps/push-and-periodic-de225603/
P.S. 后台任务一般不与应用相同进程,所以不能直接调用应用进程中的方法。关于后台任务 建议先阅读其白皮书 http://www.microsoft.com/en-us/download/details.aspx?id=27411
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Bluear 2012年11月19日 7:04
-
-
同样后台任务并不会受到影响
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
-
-
Bob,我在我的后台任务里(Task写在Windows运行时组件里,主程序调用)有一段打开xml文件并反序列化获取数据的代码,如下
public async Task<T> ReadData<T>(string fileName)
{
T data = default(T);//获取文件
StorageFile sFile = await ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
if (sFile == null)
{
return data;
}using (IInputStream inputStream = await sFile.OpenSequentialReadAsync())
{
//反序列化
DataContractSerializer serializer = new DataContractSerializer(typeof(T));
data = (T)serializer.ReadObject(inputStream.AsStreamForRead());
}
return data;
}但是,出现了如下错误 "错误 10 'BackgroundTasks.DataSerialization.ReadData<T>(System.String)' is a generic method. Windows Runtime methods cannot be generic",请问该如何解决啊。很急!
-
可跨越ABI边界的类型,即WinRT可以公开的类型不能是泛型的,所以你的泛型不被支持。
你即使要用,你可以将此类型作为WinRT内部使用,即不要用Public Protected 修饰。
Bob Bao [MSFT]
MSDN Community Support | Feedback to us