1

这个简单的代码从多行文本框中获取行,将每个 url 页面作为字符串下载,然后调用另一个函数来解析来自该字符串的信息。client.DownloadString(url) 只是挂在第二个 url 的下载尝试上。我无法得到任何关于原因的反馈。有一次它实际上经历了所有这些。我不需要使用此方法的异步版本。为什么它适用于第一个 url 而不是第二个?网址是什么并不重要,它几乎总是挂在第二个网址上。

string[] lines = tbUrls.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < lines.Count(); i++)
            {
                try
                {
                    WebClient client = new WebClient();
                    string url = lines[i];
                    string downloadString = client.DownloadString(url);

                    findNewListings(downloadString, url);
                }
                catch (Exception exce)
                {
                    MessageBox.Show("Error downlaoding page: \n\n" + exce.Message);
                }

            }
4

1 回答 1

2

我正在编辑你的代码,试试这个:

WebClient client = new WebClient();
string url = lines[i];
try
{
    string downloadString = client.DownloadString(url);
    client.Dispose(); //dispose the object because you don't need it anynmore
    findNewListings(downloadString, url);
}
catch (Exception exce)
{
    MessageBox.Show("Error downlaoding page: \n\n" + exce.Message);
}

如果一个对象不再使用,它​​对它更好Dispose

于 2013-07-05T05:14:27.143 回答