正在阅读:多线程加载多个Xml文件到TreeView控件多线程加载多个Xml文件到TreeView控件

2004-06-11 10:04 出处:CSDN 作者:zhzuo [翻译] 责任编辑:linjixiong

  源代码:LoadingXmlInTvMTCode.zip

  在很多情况下程序员需要采用多线程来开发应用程序,用户可以在前台操作数据或其他工作,在后台程序正在加载很大的一些文件,而这一过程不会影响到前台的用户。在这篇文章中,我来讲述一下怎样通过多个线程来加载多个文件。

  在这个例子中我们将来研究这样一件事情,读取多个Xml文件并通过TreeView把它们显示出来。我们可以通过数据库来完成,不过为了保持例子的简单这里采用了Xml文件。

  你会注意到我们有两个xml文件同原代码放在一起。

  程序用户界面如下:

  Filedisplayer类用来显示上面的窗体。窗体的包括一些按纽:浏览按纽,运行按纽,终止按纽以及退出按纽。应用程序可以通过点击退出按纽来结束整个程序的运行。当点击浏览的时候会打开一个文件选择对话框来加载Xml文件。当然你也可以直接在文本框中输入文件全路径。


private void selectbutton_click(object sender, System.EventArgs e)

{
     OpenFileDialog openFileDialog1 = new OpenFileDialog();

     openFileDialog1.Filter = "All Files (*.*)|*.*|Text Files (*.txt)|*.txt";

     if (openFileDialog1.ShowDialog () == DialogResult.OK)

     {
         String fileName = openFileDialog1.FileName;

         //如果文件扩展名为xml,选择成功

         if ( (fileName.Length != 0) && (fileName.EndsWith("xml")))

         {
              filename_box.Text=fileName;
         }
     }
}

  一旦选择了一个文件,用户可以通过点击运行来读取文件数据。显示的结果就如上面TreeView中所看到的。这篇文章的主要目的就是给读者一个方法来执行多线程。终止按纽用来退出执行的任务。

  现在我们已经习惯的各种用户界面控件,那就让我们来研究其他部分。你可以在代码中注意到我们已经编写了下面一些代码(如下):


private Thread QueueMonitorThread ;//定义一个线程,用来监视队列

private RequestQueue req_queue;//放了加载的文件信息(文件名)

private bool m_bAbort;//通过这标志来控制 QueueMonitorThread

private ThreadEventDelegate onTreeViewElement;//异步代理调用,切换线程来更新TreeView






察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品