在threadstart中传递方法名但没有得到任何结果...... [英] passing method name in threadstart but not getting any result...
本文介绍了在threadstart中传递方法名但没有得到任何结果......的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
SearchLink = new Thread(new ThreadStart(() =>getData("http://" + TextBox1.Text.Trim())));
SearchLink.Start();
foreach (string value in myatt)
{
Label1.Text += value;
}
方法名下的代码getData是:
Code Under Method Name getData is :
private void getData(string Url)
{
HyperLink1.Text = string.Empty;
HtmlWeb web = new HtmlWeb();
HtmlDocument myNode = web.Load(Url);
foreach (HtmlNode link in myNode.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
myatt.Add(att.Value);
}
}
i尝试调试但没有得到我的代码中发生的事情....
我收到错误
i tried with debug but not getting that what is happening in my code ....
and i am getting error
Collection was modified; enumeration operation may not execute.
帮我找出错误的地方..
help me to find out where i am wrong..
many thanks..
推荐答案
试试这个:
Hi,
Try this:
SearchLink = new Thread(new ThreadStart(() =>getData("http://" + TextBox1.Text.Trim())));
SearchLink.Start();
SearchLink.Join();
foreach (string value in myatt)
{
Label1.Text += value;
}
private void getData(string Url) // you don't need to make any change on your getData method
{
HyperLink1.Text = string.Empty;
HtmlWeb web = new HtmlWeb();
HtmlDocument myNode = web.Load(Url);
foreach (HtmlNode link in myNode.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
myatt.Add(att.Value);
}
}
希望这会有所帮助。
Hope this helps.
这篇关于在threadstart中传递方法名但没有得到任何结果......的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文