use*_*248 3 c# asp.net asynchronous async-await asp.net-web-api
我有这个API客户端,该客户端具有一个send方法,该方法用于将我的对象发布到Web API服务并返回类型为ReturnedResults的对象。现在,我需要在ASP.net page_load事件中运行此post方法。我在这里看到了类似的示例,但是我需要从异步方法中获取返回对象。
我知道我应该使用
PageAsyncTask t = new PageAsyncTask(APIService.Send("test"));
Run Code Online (Sandbox Code Playgroud)
但是我有两个问题,首先是PageAsyncTask不接受我的Send方法作为有效的Task类型,我猜这是因为我的方法返回Task类型的Task,所以它抱怨无法将Task转换为System.Func
另外,一旦成功执行,如何从中获得我的ReturnedResults对象?
仅仅因为您不能等待a的结果PageAsyncTask并不意味着任务本身无法启动更多可以等待的功能。您可以利用此优势来加载异步页面。
public void Page_Load(object sender, EventArgs e)
{
RegisterAsyncTask(new PageAsyncTask(PageLoadAsync));
}
public async Task PageLoadAsync()
{
//perform your actions here, including calling async methods and awaiting their results
Task<string> downloadTask = new WebClient().DownloadStringTaskAsync("http://www.example.com");
TextBox1.Title = "We can do some actions while waiting for the task to complete";
TextBox2.Title = await downloadTask;
}
Run Code Online (Sandbox Code Playgroud)
确保您的页面被标记为异步。
<%@ Page Language="C#" CodeBehind="Default.aspx.cs" Inherits="Default" Async="true" %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4615 次 |
| 最近记录: |