我在实践WinRT API,但遇到了一些问题,需要您的帮助。
我想试一试DataContractSerializer并参考这个站点:
http://winrtstoragehelper.codeplex.com/
守则:
Stream inStream = Task.Run(() => readStream.OpenRead()).Result;我认为应该是(窃听器?):
Stream inStream = await Task.Run(() => readStream.OpenRead());但最奇怪的是如果我只用:
Stream inStream = readStream.OpenRead());我把这条小溪传给:
DataContractSerializer.WriteObjectAPI将永远被卡住。
但如果我用:
Stream inStream = await Task.Run(() => readStream.OpenRead());然后把这个流传递到WriteObject中,然后它就可以正常工作了。
我不知道为什么只有在流中不使用Task.Run和await时才会出现这种症状。
有人能给我一些建议或建议吗?
但
inStream = readStream.OpenRead()方法未命名为“异步”
我不知道为什么我需要故意创建任务来完成这个任务。
谢谢。
发布于 2011-11-14 10:25:37
答案是在项目描述中:
"ObjectStorageHelper是一个通用类,它简化了WinRT应用程序中数据的存储,而仍然维护着地铁风格应用程序的异步*原则。
WinRT中的所有文件/IO操作本质上都是异步的,因此需要使用也是异步的方法(至少为了获得任何结果)。尽管您也可以显式地分配一个回调函数来处理异步操作的完成,但新的“等待”关键字是实现这一目标的一种方法。
https://stackoverflow.com/questions/8095612
复制相似问题