我正在使用asp.net mvc,我希望在他到达网站的主页时从数据库中缓存一些有关用户的数据。 因此,当用户请求主页时,我想调用异步方法,该方法进行数据库调用和缓存数据。
任何这样做的例子都会很棒。
答案 0 :(得分:20)
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
Task.Run(()=> DoSomeAsyncStuff());
return View();
}
private async void DoSomeAsyncStuff()
{
}
}
答案 1 :(得分:2)
我会说你通过这个调用缓存方法:
HostingEnvironment.QueueBackgroundWorkItem(x=> CacheData());
这样,你就不会让主页请求等待,所以用户可以立即看到主页,而缓存则发生在服务器的后台。
PS:但是,是的,您可能会轻微冒应用域名回收,从而搞砸了您的缓存线程。
答案 2 :(得分:2)
对于 .NET Core 我使用这个
_ = Task.Run(() => SomeAsyncFunction());
答案 3 :(得分:0)
ThreadPool.QueueUserWorkItem((Action<object>)state =>
{
//do your async work
}, null);
或Task.StartNew(...)
(对不起,简单回答,这可能会让你走上正轨,或者有人可以编辑这个以显示完整的例子,请?)