public class HomeController : AsyncController
{
//
// GET: /Home/
[OutputCache(Duration = 3)]
[AsyncTimeout(10000)]
[HandleError(ExceptionType = typeof(TimeoutException), View = "Error")]
public void IndexAsync()
{
AsyncManager.OutstandingOperations.Increment();
WebRequest wr = WebRequest.Create("http://www.baidu.com/");
wr.BeginGetResponse(asyncResult =>
{
using (WebResponse response = wr.EndGetResponse(asyncResult))
{
Thread.Sleep(3000);
AsyncManager.Parameters["dd"] = Request.UserHostAddress;
AsyncManager.Parameters["de"] = asyncResult.CompletedSynchronously;
AsyncManager.OutstandingOperations.Decrement();
}
},null);
//return View(DateTime.Now);
}
public ActionResult IndexCompleted(string dd, bool de)
{
return View(new {a1=dd,a2=de});
}
}Asp.net MVC 异步处理。
最新推荐文章于 2025-09-05 10:22:00 发布
本文介绍了一个使用异步操作的HomeController类,该类利用了.NET Framework中的AsyncController特性来实现延迟加载,并通过WebRequest实现了对外部资源的异步获取。文章展示了如何设置输出缓存、超时处理及错误捕获。

2275

被折叠的 条评论
为什么被折叠?



