当用户关闭浏览器窗口时,线程会发生什么?

3
我使用ASP.NET编写了一个网站。
网站的某个页面中有一个线程。当该线程正在运行时,如果用户关闭浏览器窗口,那么该线程会发生什么?它是否停止运行?

你可以尝试使用一个假的长时间运行的线程(Thread.Sleep(100000))和几个日志来测试。线程不会停止执行(因为它是异步的HTTP请求)。当然,它会受到ASP.NET规则的影响,所以对于非常长时间的敏感任务来说,这并不是一个好主意。 - Adriano Repetti
我的网站中有一个线程。意思是,你正在创建一个线程?该线程将一直运行,直到完成。如果您在其中放置了一个无限循环,它将永远运行下去。 - Jeroen van Langen
请google搜索“asp.net用户关闭浏览器时发生了什么”,以便在服务器端检测浏览器的关闭。或者您可以阅读这个网址:https://dev59.com/fFLTa4cB1Zd3GeqPZlYI - PTwr
.NET 没有安全的方法来停止执行任意代码的线程。它将继续运行。 - usr
3个回答

6

你的服务器实际上并不知道客户端做了什么。

如果客户端发起了一个请求,服务器将会处理它并返回一个响应。


3
我认为你所问的问题并不是你想要的答案。
对于问题"如果我在处理过程中关闭浏览器,asp.net生命周期是否会继续?"的答案是"是的"。因此,任何从ASPX页面或MVC控制器启动的内容都会继续运行,即使客户端的浏览器已关闭(请注意,如果这是您的问题,则重复了)。
然而,对于"我可以使用线程在IIS上执行长时间运行的作业吗?"的答案是"你可以,但你不应该,因为线程可能随时被终止",这可能不是你想要的。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接