使用Global.asax中的Application_Start()方法启动Web服务后冻结

本文关键字:启动 方法 Web 服务 冻结 asax Global 中的 Application Start 使用 | 更新日期: 2023-09-27 18:08:51

我正在使用一个Web服务方法返回一个列表,该列表在我的Web服务启动后执行了大约40秒(该方法是从Global.asax中的Application_Start()事件启动的)。

问题是Web服务被冻结了这个方法需要的时间,我的应用程序不会启动,直到它得到这个列表(实际上它启动了,但也被冻结了,甚至不显示表单)。

有什么办法可以处理吗?也许在Application_Start()异步调用这个方法?如有任何帮助,我将不胜感激。

Global.asax中的代码:

protected void Application_Start(object sender, EventArgs e)
    {
        WebService WS = new WebService();
        WS.RecursiveFileProcessor();
    }

使用Global.asax中的Application_Start()方法启动Web服务后冻结

您可以将该机制作为一个单独的任务启动:

protected void Application_Start(object sender, EventArgs e)
{
    Task.Factory.StartNew(() => 
    {
        WebService WS = new WebService();
        WS.RecursiveFileProcessor();
    });
}