为了账号安全,请及时绑定邮箱和手机立即绑定

c#asp多线程或web方法

c#asp多线程或web方法

C#
慕桂英3389331 2021-06-29 13:00:01
我正在寻求有关多线程/网络服务的一些建议,以及我是否应该/如何使用其中之一来解决我的问题。我的 c# asp 站点上有一个按钮可以执行一堆 api 调用,这个过程可能需要几分钟。我想把这个过程分开,这样它就可以“在后台”执行并且不会影响用户体验。该过程与我当前的项目紧密相连,因此将代码拆分为单独的 Web 服务项目并不容易。所以..如果我运行以下线程代码,如果用户杀死浏览器,它是否会成功执行?我的问题/考虑是什么?线程线程 = new Thread(new ThreadStart(RefreshData));如果上述方法不起作用,我可以通过向同一个项目添加一些 [web 方法] 并从同一个项目中调用它们来完成这项工作吗?(如果是这样 - 有什么提示吗?)如果我这样做,它会在另一个 iis 线程中成功执行它们吗?即..如果用户关闭了他们的浏览器 - 我可以确定该服务的进程会成功完成吗?此外,我计划在 AWS 上托管该网站 - 因此,如果从这个角度考虑,任何见解也会有所帮助。在此先感谢帮派..
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

您可以运行后台线程。即使访问者关闭了浏览器窗口,它们也会运行。您可以使用会话/cookie 将这些线程/工作负载与访问者相关联,因此即使他们重新访问网站后,他们也可以了解进度。

您需要注意的是防止 Web 服务器进程被回收。默认情况下,这会在某个超时或生命周期之后发生。您必须更改相关设置。

此外,保留对您创建的线程的永久引用,以防止它被垃圾收集。


查看完整回答
反对 回复 2021-07-11
  • 1 回答
  • 0 关注
  • 266 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信