Asp.net core 长时间执行操作asp.net核心mvc

Asp.net core 长时间执行操作asp.net核心mvc,asp.net-core,Asp.net Core,编写需要1分钟或更长时间才能执行但立即将控件返回到视图的操作的最佳方法是什么 我知道有Hangfire解决方案,但它使用数据库来存储执行,我需要更简单的东西 我正在使用asp.net内核 这就是我的行动: private void CipherData() { var posts = _context.Posts.All().ToList(); foreach (var post in posts) { po

编写需要1分钟或更长时间才能执行但立即将控件返回到视图的操作的最佳方法是什么

我知道有Hangfire解决方案,但它使用数据库来存储执行,我需要更简单的东西

我正在使用asp.net内核

这就是我的行动:

    private void CipherData()
    {
        var posts = _context.Posts.All().ToList();
        foreach (var post in posts)
        {
            post.TextCrypt = EncryptionHelper.Encrypt(post.Text);
            _context.Posts.Update(post);
        }
        _context.SaveChanges();
    }

我在使用Task.Run(这是一种方法)时遇到问题,因为它会丢失数据库上下文(注入)

因此,我创建了一个新的数据库上下文以在这个过程中使用。基本上:

public IActionResult CipherData()
{
    Task.Run(() =>
    {
       //create a new dbcontext here   
       //perform database manipulation using this new dbcontext
    }
    return RedirectToAction("Index", "Home");
}

有很多类似于此的问题,不确定它们是否也是关于asp.net核心的,但这是一个一般性问题,因此我怀疑其中有太多的差异,其中一个不会起作用:如果将这些问题转移到比fire forget任务(或类似任务)更具弹性的进程上,会不会更好?似乎你想知道它是否结束了。我真的不想知道它是否结束了。坏主意。IIS可以随时删除您的任务。