20

我正在使用 asp.net mvc,我想在用户到达网站主页时从数据库中缓存一些关于用户的数据。因此,当用户请求主页时,我想调用一个异步方法,该方法进行数据库调用并缓存数据。

任何这样做的例子都会很棒。

4

4 回答 4

34
public class HomeController : Controller
{
  public ActionResult Index()
  {
    ViewData["Message"] = "Welcome to ASP.NET MVC!";

    Task.Run(()=> DoSomeAsyncStuff());

    return View();
  }

  private async void DoSomeAsyncStuff()
  {

  }
}
于 2013-10-12T11:46:39.747 回答
8

对于 .NET Core,我使用它

_ = Task.Run(() => SomeAsyncFunction());
于 2021-03-19T03:19:05.783 回答
3

我会说你通过这个调用缓存方法:

HostingEnvironment.QueueBackgroundWorkItem(x=> CacheData());

这样一来,您就不会真正让主页请求等待,因此用户可以立即看到主页,而缓存发生在服务器的后台。

PS:但是,是的,您会冒着应用域回收搞砸缓存线程的风险。

于 2017-12-08T04:49:34.020 回答
0
ThreadPool.QueueUserWorkItem((Action<object>)state =>
{
    //do your async work
}, null);

或者Task.StartNew(...)

(对不起,简短的回答,这可能会让你走上正确的道路,或者有人可以编辑这个以显示一个完整的例子,好吗?)

于 2013-10-12T11:36:44.943 回答