【发布时间】:2014-05-26 04:18:33
【问题描述】:
我正在使用 asp.net 4.5 Web 应用程序和 asp.net 成员资格。我实现了有一个方法的 MembershipProvider 接口:
public override bool ValidateUser(string username, string password)
此方法中用于我的实现的代码必须进行两次 WCF 服务调用,这可能会很昂贵。本着学习和使用异步的精神和愿望,我想让代码使用异步等待。
我创建了两个需要调用 WCF 服务方法的任务。我不清楚的是如何正确使用“ValidateUser”方法中的异步来调用这些任务。我无法更改此方法签名以添加异步,因为我必须将 bool 更改为 Task,所以我坚持使用异步修饰符无法使用的方法签名。
在这种情况下,我如何调用我的两个任务并让它们在后台线程上运行?我知道我可以使用 Task.Result 但我的理解是这将是一个同步调用并且不赞成。我不确定使用 Task.Result 的好处,因为我的意图是后台线程我的两个 WCF 服务方法调用。
【问题讨论】:
-
除非在设计时考虑到异步,否则您尝试的任何技巧都可能比保持同步更值得。
标签: asp.net asp.net-membership async-await c#-5.0