首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataContractSerializer in WinRT

DataContractSerializer in WinRT
EN

Stack Overflow用户
提问于 2011-11-11 14:47:54
回答 1查看 889关注 0票数 6

我在实践WinRT API,但遇到了一些问题,需要您的帮助。

我想试一试DataContractSerializer并参考这个站点:

http://winrtstoragehelper.codeplex.com/

守则:

代码语言:javascript
复制
Stream inStream = Task.Run(() => readStream.OpenRead()).Result;

我认为应该是(窃听器?):

代码语言:javascript
复制
Stream inStream = await Task.Run(() => readStream.OpenRead());

但最奇怪的是如果我只用:

代码语言:javascript
复制
Stream inStream = readStream.OpenRead());

我把这条小溪传给:

代码语言:javascript
复制
DataContractSerializer.WriteObject

API将永远被卡住。

但如果我用:

代码语言:javascript
复制
Stream inStream = await Task.Run(() => readStream.OpenRead());

然后把这个流传递到WriteObject中,然后它就可以正常工作了。

我不知道为什么只有在流中不使用Task.Runawait时才会出现这种症状。

有人能给我一些建议或建议吗?

inStream = readStream.OpenRead()方法未命名为“异步”

我不知道为什么我需要故意创建任务来完成这个任务。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-11-14 10:25:37

答案是在项目描述中:

"ObjectStorageHelper是一个通用类,它简化了WinRT应用程序中数据的存储,而仍然维护着地铁风格应用程序的异步*原则。

WinRT中的所有文件/IO操作本质上都是异步的,因此需要使用也是异步的方法(至少为了获得任何结果)。尽管您也可以显式地分配一个回调函数来处理异步操作的完成,但新的“等待”关键字是实现这一目标的一种方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8095612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档