c# asp 多线程或 web 方法
c# asp multi threading or web method
我正在寻求有关多线程/Web 服务的一些建议,以及是否/如何使用其中之一来解决我的问题。
我的 c# asp 站点上有一个按钮可以执行大量 api 调用,该过程可能需要几分钟。
我想拆分这个过程,以便它可以执行 'in the background' 并且不会影响用户体验。
该过程与我当前的项目紧密相关,因此将代码拆分到单独的 Web 服务项目中并不容易。
所以..
- 如果我运行下面的线程代码,如果用户关闭浏览器,它会执行成功吗?我的 issues/considerations 是什么?
线程thread = new Thread(new ThreadStart(RefreshData));
如果上述方法不起作用,我可以通过向同一个项目添加一些 [web 方法] 并从同一个项目调用它们来实现吗? (如果是 - 有什么建议吗?)
如果我这样做,它会在另一个 iis 线程中成功执行它们吗?即..如果用户关闭了他们的浏览器——我能确定服务的进程会成功完成吗?
此外,我计划在 AWS 上托管网站 - 因此,如果从这个角度考虑,任何见解也会有所帮助。
提前致谢帮派..
您可以 运行 后台线程。他们 运行 即使访问者关闭了浏览器 window。您可以使用 sessions/cookies 将这些 threads/workload 与访问者相关联,这样即使他们重新访问该网站,他们也可以了解进度。
你要注意的是不要让web服务器进程回收。默认情况下,这将在某个超时或生命周期后发生。您必须更改相关设置。
此外,保留对您创建的线程的永久引用,以防止它被垃圾回收。
我正在寻求有关多线程/Web 服务的一些建议,以及是否/如何使用其中之一来解决我的问题。
我的 c# asp 站点上有一个按钮可以执行大量 api 调用,该过程可能需要几分钟。 我想拆分这个过程,以便它可以执行 'in the background' 并且不会影响用户体验。 该过程与我当前的项目紧密相关,因此将代码拆分到单独的 Web 服务项目中并不容易。
所以..
- 如果我运行下面的线程代码,如果用户关闭浏览器,它会执行成功吗?我的 issues/considerations 是什么?
线程thread = new Thread(new ThreadStart(RefreshData));
如果上述方法不起作用,我可以通过向同一个项目添加一些 [web 方法] 并从同一个项目调用它们来实现吗? (如果是 - 有什么建议吗?)
如果我这样做,它会在另一个 iis 线程中成功执行它们吗?即..如果用户关闭了他们的浏览器——我能确定服务的进程会成功完成吗?
此外,我计划在 AWS 上托管网站 - 因此,如果从这个角度考虑,任何见解也会有所帮助。
提前致谢帮派..
您可以 运行 后台线程。他们 运行 即使访问者关闭了浏览器 window。您可以使用 sessions/cookies 将这些 threads/workload 与访问者相关联,这样即使他们重新访问该网站,他们也可以了解进度。
你要注意的是不要让web服务器进程回收。默认情况下,这将在某个超时或生命周期后发生。您必须更改相关设置。
此外,保留对您创建的线程的永久引用,以防止它被垃圾回收。