我正在尝试在 asp.net 中使用异步和等待。为简单起见,我的目标是异步调用一个方法,一旦返回,更新 UI 上标签中的数据。这是default.aspx
<form id="form1" runat="server">
<div>
<asp:Button runat="server" Text="click me" OnClick="asyncbtn_Click" id="asyncbtn" /><br />
<asp:TextBox runat="server" /><br />
<asp:Label runat="server" Text="[Result label]" ID="resultLabel"/>
<asp:Label runat="server" Text="[Result label]" ID="Label1"/>
</div>
</form>
文件后面的代码...
protected void asyncbtn_Click(object sender, EventArgs e)
{
RegisterAsyncTask(new PageAsyncTask(DoSomethingAsync));
}
public async Task<int> DoSomethingAsync()
{
await Task.Delay(10000);
resultLabel.Text = 20.ToString();
await Task.Delay(5000);
Label1.Text = 30.ToString();
return 0;
}
所以当我点击按钮时,我的浏览器会等到整个 DoSomethingAsync 方法完成。所以我相信这将成为同步调用而不是异步调用。
谁能告诉我这里出了什么问题。