C# 如何在Web服务上同时创建两个列表

C# 如何在Web服务上同时创建两个列表,c#,web-services,list,C#,Web Services,List,我正在开发一个应用程序,它使用从Web服务返回的两个列表。我正在Global.asax应用程序启动事件中创建这些列表。我的代码: protected void Application_Start(object sender, EventArgs e) { Task.Factory.StartNew(() => { WebService WS = new WebService(); if(WS.Przes

我正在开发一个应用程序,它使用从Web服务返回的两个列表。我正在Global.asax应用程序启动事件中创建这些列表。我的代码:

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

        });
    }
RecursiveFileProcessor是一种WebMethod,它使用MD5哈希创建文件列表。创建它最多需要80秒。stworzListeMetodAlugosci是一种WebMethod,它创建一个文件列表,文件长度为,创建时间为1秒

在我的应用程序开始时,我选择我想要比较文件的方法。我的目标是在Web服务启动后立即同时加载这两个列表,因为我希望在等待MD5方法列表时使用length方法列表

关键是,如果列表未满,则应返回null。例如,如果文件夹中有100个文件,WebMethod应在列表中未填写所有100个文件时返回null,如果列表中已填写所有100个文件,则返回列表

此方法将列表返回到我的应用程序:

[WebMethod]
    public List<string> returnMD5List()
    {

        if (returnNullForList== true)
        {
            return null;
        }
        else
        {
            return FilesInWSList;
        }
    }

有没有办法做到这一点?任何帮助都将不胜感激。

在web应用程序中生成/使用线程池通常不是一个好主意,因为IIS会在其认为空闲的时间内对您的应用程序池进行检查。而且它对小猫有害所以你展示的方法有什么问题?我只是在列表完成后设置它,但如果returnNullForList返回null,则像您所显示的那个样进行标记;这也是合理的。我现在使用bool来选择创建哪个列表,但是当我不使用这个bool并且它同时创建两个列表时,我必须等到创建了较长的一个列表,此时我无法访问快速列表。