c# - 用户在网站中触发一个漫长的过程

标签 c# asp.net multithreading

我想创建一个网页,用户可以在其中启动一个流程,这个流程需要几分钟才能完成。

My question is:
When the user clicks on a button, should I start the process on a different thread and send him to a different page? I don't want the process to end in case he closes the window or the connection is lost.

还有如何防止其他用户启动此过程。

我考虑过在应用程序状态中放置一个变量来指示进程当前是否正在运行。

谢谢你的建议

最佳答案

如果这是一个长时间运行的进程,最好将其移出到服务中。通过这种方式,您可以水平缩放它。如果您将其留在网站中,一旦负载增加,您将需要重构您的代码。

服务可以有一个长时间运行的操作请求队列。在给定的时刻,该服务将处理一个/两个/任何项目。根据您的需要,您可以将操作结果及其当前状态保存到存储中。

表示层启动操作(用户按下按钮),然后轮询存储以获取结果,完成后将结果从存储传递给用户。

关于c# - 用户在网站中触发一个漫长的过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211684/

相关文章:

c# - 如何在列表框中列出 newtonsoft Jtoken 或 JObjects 子项

c# - 无法将参数值从 String 转换为 Double C#

java - 无需完成所有即可从 future 获得结果

c# - 如何将字典序列化为base64

c# - Oracle Managed DataAccess 连接对象保持连接打开

c# - WCF 4.0 - 使用 REST 服务模板返回 JSON WebFaultException

c# - 线程网络流从同一个套接字写入

c# - 从 C# 代码安装 npm 失败

c# - ASP.Net vNext App_Data 文件夹

Java:将值连续读取到多个从未完成的 jprogressbars