我正在处理一个演示文稿,并认为由于ActionResult未在正确的上下文中返回,因此以下内容应该失败。我已经用VS测试了它,并没有发现错误。我已经调试过它并知道它正在切换线程。所以它似乎是合法的代码。从ASP.NET MVC中调用ConfigureAwait操作
ASP.NET不关心像客户端应用程序那样的上下文或线程吗?如果是这样,AspNetSynchronizationContext提供了什么目的?我不觉得在操作本身中添加ConfigureAwait是正确的。有些东西似乎错了。谁能解释一下?
public async Task<ActionResult> AsyncWithBackendTest()
{
var result = await BackendCall().ConfigureAwait(false);
var server = HttpContext.Server;
HttpContext.Cache["hello"] = "world";
return Content(result);
}
一个正确的答案应该说为什么这样做完全没问题,或者应该给出一个当你尝试这个时失败的例子。我的直觉告诉我,我不应该这样做,但我希望有事实支持我。 – 2012-04-05 02:55:42