【问题标题】:C# using asynchronous method for modelC#对模型使用异步方法
【发布时间】:2014-04-25 18:22:01
【问题描述】:

这里有人曾在 C# Windows Phone 8 的 MVVM 架构中使用异步方法作为模型吗?

例如,我想要从网络获取信息(xml)的方法中有 3 个步骤: 1. 从 Web 获取 XML(异步) 2.反序列化xml 3.“规范化”在no中创建的对象。 2 并返回对象

在模型内部有一个方法GetUser(),当从视图调用它时返回一个用户对象。但是GetXML 方法是异步的,所以它返回一个Task<>。所以它就像一个从模型到视图的异步链(对象Task<> 被传递到视图上)。但我想反序列化和规范化模型内的对象。异步解决方案(返回Task<>)表明我必须在视图中执行逻辑,当Task<> 的结果已经得到时。

有什么解决办法吗?一个异步方法返回 Task<> 而不是 Task<> 本身的结果?

【问题讨论】:

    标签: c# wpf windows-phone-8 asynchronous mvvm


    【解决方案1】:

    有什么解决办法吗?返回 Task 的结果而不是 Task 本身的异步方法?

    只需使您的模型方法类似于public async Task<User> GetUserAsync(...),并在模型中使用await 为您组成异步。在 Model 层中没有什么可以阻止这一点,这与在应用程序的其他层中的完成方式非常相似。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      相关资源
      最近更新 更多