不要等待ASP.NET MVC的长时间运行

Mic*_*elD 5 c# multithreading visual-studio-2010 asp.net-mvc-2

当用户执行某些操作(生成多个报告)时,我们会执行一些长时间运行操作.我们不希望用户等到生成这些报告.有没有一个快速的方法来实现这一点,而无需实现jobcheduler?也许使用这样的线程?或者这不安全吗?

    public ActionResult About()
    {
        Thread thread = new Thread(new ThreadStart(MuchWork));
        thread.Start();
        return View();
    }

    public void MuchWork()
    {
        Thread.Sleep(10000);

        Thread.Sleep(4000);
    }
Run Code Online (Sandbox Code Playgroud)

小智 0

这是不安全的。您的服务器在操作过程中崩溃了怎么办?并且用户不知道该操作从未被执行。

一般来说,工作流程/持久机制会对此有所帮助,但您必须真正考虑灾难性场景的业务/用户体验案例。