C# 如何在Web服务上同时创建两个列表
我正在开发一个应用程序,它使用从Web服务返回的两个列表。我正在Global.asax应用程序启动事件中创建这些列表。我的代码: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
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并且它同时创建两个列表时,我必须等到创建了较长的一个列表,此时我无法访问快速列表。