30-40分钟后性能下降c#

时间:2013-02-08 12:50:38

标签: c# web-services download webservice-client

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

问题在于 richTextBox 标签上的信息。

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

另一方面, 1.5k 至 1.2k 每分钟 > 2.5小时)仍然存在的下载仍然是一个谜。