Nik*_*aKo 2 c# asp.net asp.net-mvc async-await
我有长期工作的同步控制器方法,当它运行时,我无法得到其他用户请求的答案。
我使用 async/await 和 ConfigureAwait(False) 将所有内容设为异步,但我仍然需要等待。
简单的例子:
public async Task<ActionResult> Index()
{
var result = await Task.Run(() => Wait()).ConfigureAwait(false);
return View(result);
}
private async Task<bool> Wait()
{
await Task.Delay(60000);
return true;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我向此方法“mycontroller/Index”发送请求,我希望可以获得另一个方法“anotherController/Index”的视图,但我应该等到异步方法完成。
这是正常行为吗?我应该使用 async 来释放 ui 线程并使其可用,直到长时间运行的方法完成吗?
ASP.NET 序列化相同请求以避免多个线程Session同时写入相同请求的问题。Session标记有会话ReadOnly属性的控制器的操作将并行执行:
[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]
public class MyController : Controller
{
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2118 次 |
| 最近记录: |