gpt4 book ai didi

.net - 自定义线程在 Application_Start 中启动

转载 作者:行者123 更新时间:2023-12-02 02:31:25 25 4
gpt4 key购买 nike

我必须处理用 .NET Framework 1.1 编写的遗留 ASP.NET 应用程序。在检查应用程序代码时,我发现了有趣的部分。应用程序在 Application_Start 事件处理程序 (Global.asax) 中启动自定义线程。此线程必须在应用程序的整个生命周期内运行。

很久以前,我读到过永远不要使用它,但我不记得为什么了。与此类应用程序设计相关的问题是什么?崩溃时是否可以重新启动线程?崩溃会自动记录在某个地方(事件日志)吗? ASP.NET 运行时是否可以出于任何原因终止线程?

目前我对 AppPool 回收不感兴趣。它重新启动应用程序、所有 session 并创建新线程。

最佳答案

主要问题是线程可能随时被 ASP.NET 终止。如果线程一直在运行,则可能有一些它应该做的工作,终止可能不会让您的应用程序在下次启动时开心。

现代解决方案包括使用异步页面和内置线程池。

如果您选择升级,请记住 in .NET 1.1, threads throwing a top-level exception just exit; in .NET 2.0, threads throwing a top-level exception crash .如果您升级,最好跳转到异步页面而不是保留一个单独的线程。

关于.net - 自定义线程在 Application_Start 中启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com