我正在處理一個演示文稿,並認爲由於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