【发布时间】:2014-12-09 19:39:38
【问题描述】:
我一直在寻找任何使用 ASP.NET WebForms 构建异步接口的简单示例。即当 async 方法完成时,await 将呈现。
这是我一直在查看的示例之一,How and When to use `async` and `await`。我一直在寻找的实现看起来像这样
protected async void button1_Click(object sender, EventArgs e)
{
// Render when done
textBox1.Text += await WaitAsynchronouslyAsync(RandomNumber(2000, 4000));
// Render when done
textBox1.Text += await WaitAsynchronouslyAsync(RandomNumber(100, 1000));
}
public async Task<string> WaitAsynchronouslyAsync(int delay)
{
await Task.Delay(delay);
return string.Concat(delay, "; ");
}
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
然而,当一切都完成时,这将始终呈现,但同时。在上面的示例中,期望的结果是在第一次调用之前第二次调用 WaitAsynchronouslyAsync 进行渲染,因为它总是会减少延迟。
或者甚至可以使用网络表单?我确实知道如何在 JavaScript 中使用 webapi、websockets 和诸如此类的东西来做到这一点,这不是我目前想要的解决方案。
【问题讨论】:
标签: asp.net webforms async-await