【问题标题】:What happens to a thread in when user closes the browser window?当用户关闭浏览器窗口时,线程会发生什么?
【发布时间】:2015-03-25 19:02:41
【问题描述】:

我使用 ASP.NET 编写了一个网站。

在我网站的一页中有一个线程。在线程运行过程中,当用户关闭浏览器窗口时,线程会发生什么?该线程是否停止运行?

【问题讨论】:

  • 您可以使用假的长时间运行的线程 (Thread.Sleep(100000)) 和少量日志来尝试。线程不会停止执行(因为它与 http 请求是异步的)。当然它会受到 ASP.NET 规则的影响,所以对于一个运行时间很长的合理任务来说,这不是一个好主意。
  • “我的网站的一页中有一个线程”的意思..您正在创建一个线程?线程将一直运行直到完成。如果你在其中放入一个无限循环,它将“永远”运行
  • stackoverflow.com/questions/4333152/… 提示:google for "asp.net 当用户关闭浏览器时会发生什么" ;)
  • .NET 没有安全的方法来阻止线程执行任意代码。它会继续运行。

标签: asp.net multithreading


【解决方案1】:

您的服务器并不真正知道客户端做了什么。

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

【讨论】:

    【解决方案2】:

    我认为您提出的问题不是您想要回答的问题。

    "Does asp.net lifecycle continue if I close the browser in the middle of processing?" 问题的答案是“是”。因此,您从 ASPX 页面或 MVC 控制器开始的任何内容都会继续运行,即使客户端的浏览器已关闭(请注意,如果这是您的问题,这是重复的)。

    但是,"Can I use threads to carry out long-running jobs on IIS?" 的答案是“你可以,但你不应该,因为线程可能随时终止”,这可能是你不想要的。 p>

    【讨论】:

      【解决方案3】:

      请查看这个有趣的对话。据此,即使你关闭它也不会停止。 https://forums.asp.net/t/1186025.aspx?What+happens+to+background+process+thread+when+one+closes+the+borwser+window+

      【讨论】:

        猜你喜欢
        • 2010-09-19
        • 1970-01-01
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        • 2015-04-27
        • 2016-12-13
        相关资源
        最近更新 更多