这个简单的代码从多行文本框中获取行,将每个url页面作为字符串下载,并调用另一个函数来解析该字符串中的信息。 client.DownloadString(url)只挂起第二个url的下载尝试。我无法得到任何有关原因的反馈。有一次它实际上经历了所有这些。我不应该使用此方法的异步版本。为什么dos会在第一个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);
}
}
答案 0 :(得分: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
。