【发布时间】:2018-04-30 16:16:22
【问题描述】:
我有这个 API 客户端,它有一个发送方法,用于将我的对象发布到 Web API 服务并返回 ReturnedResults 类型的对象。 现在我需要在 ASP.net page_load 事件中运行这个 post 方法。 我在这里看到了类似的例子,但是我需要的是从我的异步方法中获取我的返回对象。
我知道我应该使用
PageAsyncTask t = new PageAsyncTask(APIService.Send("test"));
但是我有两个问题,首先 PageAsyncTask 不接受我的 Send 方法作为有效的 Task 类型,我猜这是因为我的方法返回 Task 类型的 Task 所以它抱怨它不能将 Task 转换为 System.Func
还有,一旦我的 ReturnedResults 对象成功执行,我该如何从中取出它?
【问题讨论】:
-
谢谢,但我看过那些文章,它们都对我的情况没有帮助,我需要从我的异步方法中获取结果,同时让它暂停页面加载,直到等待异步方法结束。
-
理想情况下,将重载方法放在 Page_Load 中并不是一个好主意。我不确定您的要求如何。但是,它可能需要修改您的系统设计。
-
复制者:stackoverflow.com/questions/8242375/… 和 stackoverflow.com/questions/34204450/…。 Page_load a 自然是同步的。如果您想优化 IIS 吞吐量(如 MVC/Web API 中的异步控制器方法),Page.RegisterAsyncTask 没有意义。 Page.RegisterAsyncTask 更像是可管理的“即发即弃”。
标签: c# asp.net asynchronous asp.net-web-api async-await