2

我正在尝试从远程位置下载文件。但就在下载之前,我从 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;
 }
4

2 回答 2

0
if (File.Exists(filePath + "/" + fileName + "." + ext))

瓶颈可能就在这里。当您在单个文件夹中获得大量文件时,检查具有此名称的文件是否已存在可能需要一些时间才能完成。因此,您可能希望将文件存储在不同的文件夹中

于 2013-02-08T12:56:35.750 回答
0

问题出在richTextBoxlabel上的信息。

rtb 附加了有关每个单独元素发生的任何事情的信息。标签显示了我们所在的元素。显然cpu无法处理它,这在长时间运行时成为一个主要问题。它吃掉了太多的 CPU,最终杀死了应用程序。删除或限制它们的输出几乎解决了所有问题。

另一方面,仍然存在的下载量的轻微下降( 2.5 小时每分钟1.5k1.2k )仍然是个谜。

于 2013-02-11T13:49:00.273 回答