在此,是否有人在C#Windows Phone 8中将异步方法用作MVVM体系结构中的模型?
例如,我要从Web获取信息(xml)的方法中有3个步骤:
1.从Web获取XML(异步)
2.反序列化xml
3.“归一化”在No.中创建的对象。 2,并返回对象
在模型内部,有一种GetUser()
方法,当从 View 中调用它时,该方法返回一个User对象。但是GetXML方法是异步的,因此它返回Task<>
。因此,就像从模型到 View 的异步链(对象Task<>
被传递到 View )。但是我想反序列化和规范化模型中的对象。异步解决方案(返回Task<>
)表示在获得Task<>
的结果后,我必须在 View 中执行逻辑。
有什么解决办法吗?一个返回Task<>
结果而不是Task<>
本身的异步方法?
最佳答案
Is there any solution for this? An async method that returns the result of the Task<> not the Task<> itself?
只需使您的模型方法类似于
public async Task<User> GetUserAsync(...)
,并在模型中使用await
为您组成异步。在Model层中没有什么可以阻止这种情况的发生,这与在应用程序其他层中的完成过程非常相似。
关于c# - C#使用异步方法进行模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300324/