我正在尝试从远程位置下载文件。但是在下载之前,我从Web服务获取文件位置,也在远程位置。
问题是,随着时间的推移,我的表现会有所下降。下载的文件编号在一两个小时后从3分钟内的大约2k减少到300-400,同时我有250k文件。
服务或下载是否有问题?或两者兼而有之?
我从服务中获取名称后,下载文件如下,
try
{
using (WebClient client = new WebClient())
{
if (File.Exists(filePath + "/" + fileName + "." + ext))
{
return "File Exists: " + filePath + "/" + fileName + "." + ext;
}
client.DownloadFile(virtualPath, filePath + "/" + fileName + "." + ext);
return "Downloaded: " + filePath + "/" + fileName + "." + ext;
}
}
catch (Exception e) {
return"Problem Downloading " + fileName + ": " + e.Message;
}
答案 0 :(得分:0)
if (File.Exists(filePath + "/" + fileName + "." + ext))
瓶颈可能就在这里。 当您在单个文件夹中获取大量文件时,检查具有此名称的文件是否已存在可能需要一些时间才能完成。 因此,您可能希望将文件存储在不同的文件夹中
答案 1 :(得分:0)
问题在于 richTextBox 和标签上的信息。
rtb附有关于每个元素发生的任何信息。标签显示我们在哪个元素。显然cpu无法处理它,这在长时间运行时成为一个主要问题。它吃了这么多cpu,最终杀死了应用程序。删除或限制其输出几乎解决了所有问题。
另一方面, 1.5k 至 1.2k 每分钟 > 2.5小时)仍然存在的下载仍然是一个谜。