Asp.net WebRequest和WebService在C中异步调用#

Asp.net WebRequest和WebService在C中异步调用#,asp.net,asp.net-mvc,web-services,asp.net-mvc-2,Asp.net,Asp.net Mvc,Web Services,Asp.net Mvc 2,我有一个MVC应用程序(也适用于非MVC),其中用户正在发布数据。我需要获取这些数据,将其发送到两个不同的端点(一个使用WebRequest表单POST,另一个使用Web服务),解析结果,然后将结果发送回原始用户 目前的问题是,两个端点都需要大约20-30秒来响应(响应是一个字符串),这意味着我可能应该异步执行这两个调用。同时,我想等待响应原始用户,直到我得到这两个结果。我猜我可能必须使用某种对象锁,以便在两个调用完成之前不会返回响应 我走对了吗?有人知道如何做到这一点吗?感谢您的帮助 谢谢 编

我有一个MVC应用程序(也适用于非MVC),其中用户正在发布数据。我需要获取这些数据,将其发送到两个不同的端点(一个使用WebRequest表单POST,另一个使用Web服务),解析结果,然后将结果发送回原始用户

目前的问题是,两个端点都需要大约20-30秒来响应(响应是一个字符串),这意味着我可能应该异步执行这两个调用。同时,我想等待响应原始用户,直到我得到这两个结果。我猜我可能必须使用某种对象锁,以便在两个调用完成之前不会返回响应

我走对了吗?有人知道如何做到这一点吗?感谢您的帮助

谢谢

编辑


基于这些响应,我决定使用异步控制器,因为我已经在使用MVC应用程序。感谢您的输入。

您可以在两个异步线程上调用Join以等待它们的返回。您还需要研究异步控制器。这在MVC2中可用,但您也可以查看我认为可以实现异步操作的MVC1特性。您需要这样做,这样就不会阻止IIS处理更多线程。

您可以在两个异步线程上调用Join,等待它们返回。您还需要研究异步控制器。这在MVC2中可用,但您也可以查看我认为可以实现异步操作的MVC1特性。您将希望这样做,这样就不会阻止IIS处理更多线程。

我想您会发现这样做很有帮助:

特别是,使用ForkJoin等待两个响应返回,如注释中所述:

还有一个额外的问题,我想同时执行web调用 当所有调用都完成时,执行另一个可观察的,直到其他调用完成

使用Observable.ForkJoin执行 同时进行多个异步调用 然后将所有结果合并到 一个单一的可观察的。然后使用 SelectMany(另一个from语句) 就像上面一样,订阅 另一个可观察到的基于连接的 结果


我想你会发现这很有帮助:

特别是,使用ForkJoin等待两个响应返回,如注释中所述:

还有一个额外的问题,我想同时执行web调用 当所有调用都完成时,执行另一个可观察的,直到其他调用完成

使用Observable.ForkJoin执行 同时进行多个异步调用 然后将所有结果合并到 一个单一的可观察的。然后使用 SelectMany(另一个from语句) 就像上面一样,订阅 另一个可观察到的基于连接的 结果