我只是想知道是否有可能在WinRT应用程序中异步地反序列化文件中的数据。看起来我必须让StorageFile对象反序列化它并使它必须是异步的。是对的吗?或许你知道我是否能同步做到这一点? 这是有效的异步代码,但它是ASYNC
public static async Task<StorageFile> GetFileFromAsync(string relativeFileName)
{
StorageFolder localAppDataFolder = ApplicationData.Current.LocalFolder;
try
{
StorageFile file = await localAppDataFolder.GetFileAsync(relativeFileName);
return file;
}
catch (FileNotFoundException)
{
return null;
}
}
public static async Task<T> ReadFromXmlInIsAsync<T>(string path) where T : class
{
T data;
StorageFile isolatedStorageFile = await IsolatedStorageHelper.GetFileFromAsync(path);
if(isolatedStorageFile == null) return null;
using (IInputStream sessionInputStream = await isolatedStorageFile.OpenReadAsync())
{
DataContractSerializer sessionSerializer = new DataContractSerializer(typeof(T));
data = (T)sessionSerializer.ReadObject(sessionInputStream.AsStreamForRead());
}
return data;
}
答案 0 :(得分:0)
不,没有办法同步进行。
所有WinRT API都是异步的,以鼓励开发人员编写响应式应用程序。