技术开发 频道

自己动手制作多线程RSS新闻阅读器

   我们就以 IT168 的RSS 2.0文件格式作为参考来进行程序演示。

   创建RSS阅读器的第一步我就是要获取远程RSS聚合内容,一般都是一个以.xml为扩展名的文件。由于获取远程数据比较耗时,为了不让程序失去响应我们继续利用BackgroundWorker异步获取远程数据,代码如下:

 

private void button1_Click(object sender, EventArgs e)
        {
            hasError = false;
            textBox1.Enabled = listBox1.Enabled = button1.Enabled = false;
            backgroundWorker1.RunWorkerAsync(textBox1.Text);
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            string rsslink = e.Argument.ToString();
            DataSet ds = new DataSet();
            try
            {
                ds.ReadXml(rsslink);
                rssData = ds.Tables[2];
            }
            catch
            {
                hasError = true;
            }
        }

        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (!hasError)
            {
                listBox1.Items.Clear();
                for (int i = 0; i
< rssData.Rows.Count; i++)
                {
                    listBox1.Items.Add(i);
                }
            }
            else
            {
                listBox1.Items.Clear();
                listBox1.Items.Add("error");
            }
            listBox1.Enabled
= true;
            
textBox1.Enabled = true;
            
button1.Enabled = true;
        
}
0
相关文章