Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC-如何运行单独的进程并让用户继续正常使用应用程序?_C#_Asp.net Mvc_Performance_Asynchronous - Fatal编程技术网

C# ASP.NET MVC-如何运行单独的进程并让用户继续正常使用应用程序?

C# ASP.NET MVC-如何运行单独的进程并让用户继续正常使用应用程序?,c#,asp.net-mvc,performance,asynchronous,C#,Asp.net Mvc,Performance,Asynchronous,我有一个MVC#web应用程序存在效率问题。我们有一个用户可以点击的控制器方法,它运行一个通知过程,有时需要翻动10k+记录,并发送相关通知。此过程有时可能需要15分钟以上 我的问题只是一般性的,希望您能给予指导。。我将如何使这一过程更有效率?理想情况下,用户将执行操作,点击我们的控制器并启动这个巨大的进程,然后在进程在后台运行时返回到正常的应用程序使用状态 我会用异步控制器方法来实现这一点吗?仅仅因为您运行的是MVC网站应用程序,并不意味着您不能利用线程和异步处理。我建议你熟悉一下 使用最简单

我有一个MVC#web应用程序存在效率问题。我们有一个用户可以点击的控制器方法,它运行一个通知过程,有时需要翻动10k+记录,并发送相关通知。此过程有时可能需要15分钟以上

我的问题只是一般性的,希望您能给予指导。。我将如何使这一过程更有效率?理想情况下,用户将执行操作,点击我们的控制器并启动这个巨大的进程,然后在进程在后台运行时返回到正常的应用程序使用状态


我会用异步控制器方法来实现这一点吗?仅仅因为您运行的是MVC网站应用程序,并不意味着您不能利用线程和异步处理。我建议你熟悉一下

使用最简单的方法,您可以启动新任务,并且可以根据需要订阅回调方法来进行后期处理


MVC或任何其他网站的诀窍是如何启动任务以及如何将通知返回给用户。这需要使用JavaScript进行一些客户端编程,但如果您倾向于在网站上进行更繁重的处理,我将介绍使用最现代的方法:ASP.NET Core with Blazor()。Blazor技术在撰写本文时仍处于测试阶段。

由于会话和超时,这是一个棘手的问题。一种方法是定期从用户界面进行调用,并将进度存储在数据库或类似数据库中,以实现简单的前进。流程完成时是否需要通知用户?或者这是一种“失火后忘记”的情况?这可能完全是“失火后忘记”,因为一旦过程完成,我们将记录插入日志数据库,用户可以稍后检查并查看其操作的记录。因此,我认为我们不需要担心会话或超时或其他任何问题。您应该能够通过设置控制器方法来完成这项工作,然后通过jQuery.Ajax调用从客户端启动它。好的,那么您的意思是我不必乱用异步方法或任何东西?在代码继续运行之前,ajax调用会等待服务器的响应,我该如何避免这个事实呢?对不起,如果这是一个彻头彻尾的问题,我对这类事情毫无兴趣。