0

生成充当轮询服务但在 .NET Web 应用程序中运行的异步线程是否存在任何危险或问题?

例如:

public class Global : HttpApplication
{
    protected void Application_Start()
    {
        var timer = new Timer();
        timer.Interval = 1000;
        timer.Elapsed += TimerElapsed;
    }

    private void TimerElapsed(object sender, ElapsedEventArgs e)
    {
        // Do work
    }
}

鉴于应用程序在其自己的应用程序池中运行,是否有任何应注意的隐藏含义?

4

1 回答 1

0

Phil Haack 很好地解释了为什么这是一个坏主意:http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net。 aspx/

他有一个可用的 NuGet 包,它是在 Web 服务器上运行计时器的更好选择:http ://www.nuget.org/packages/webbackgrounder

于 2014-02-10T00:57:47.223 回答