У меня есть программа чтения новостей RSS, которая читает канал RSS и записывает новости со ссылками в ListView.когда я выполняю свою программу, я запускаю новую ветку, подобную этой:
Thread myThread = new Thread(getNews);
myThread.Start();
Мой метод чтения ленты выглядит следующим образом:
public void getNews()
{
//Creates a XmlTextReader which reads from the url entered in input field
rssReader = new XmlTextReader(txtUrl.Text);
//Creates an xml doc to save the content of the entered path
rssDoc = new XmlDocument();
//Loads the xml content from the reader into a XmlDocument
rssDoc.Load(rssReader);
//Make a loop to search for the <rss> tag
for (int i = 0; i < rssDoc.ChildNodes.Count; i++)
{
//If the childenode is the rss tag
if (rssDoc.ChildNodes[i].Name == "rss")
{
//the <rss> tag is found, and we know where it is
nodeRss = rssDoc.ChildNodes[i];
}
}
//Make a loop to search for the <channel> tag
for (int i = 0; i < nodeRss.ChildNodes.Count; i++)
{
//If the childnode is the channel tag
if (nodeRss.ChildNodes[i].Name == "channel")
{
//The channel tag is found and we know where it is
nodeChannel = nodeRss.ChildNodes[i];
}
}
//Make a loop to search for the <item> tag
for (int i = 0; i < nodeChannel.ChildNodes.Count; i++)
{
//If the childnode is the item tag
if (nodeChannel.ChildNodes[i].Name == "item")
{
//the item tag is found, and we know where it is
nodeItem = nodeChannel.ChildNodes[i];
//Creates a new row in the LstView which contains information from inside the nodes
rowNews = new ListViewItem();
rowNews.Text = nodeItem["title"].InnerText;
rowNews.SubItems.Add(nodeItem["link"].InnerText);
if (this.lstView.InvokeRequired)
{
AddItemCallback d = new AddItemCallback(getNews);
this.Invoke(d);
}
else
{
lstView.Items.Add(rowNews);
}
}
}
Моя проблема заключается в том, что послеЯ начал запускать свой код в новом потоке и использовать делегата, чтобы проверить, требует ли listView вызванный, все новостные ленты записаны в моем listView несколько раз.если я запускаю метод без запуска нового потока и использования делегата, который пишется только один раз, то почему?Вероятно, это очень простой вопрос, но просто не могу понять, почему
Заранее спасибо, примеры кода приветствуются:)