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

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

  在RequestQueue.CS文件中我们定义了一个RequestQueue类,他是一个队列用来存储文件名数据。在这个例子中设置了队列的容量为5。因此队列最多能放五个文件名在里面。在Add方法中有一个逻辑,如果添加文件成功返回1,如果失败(队列为满)返回0;Remove方法用来移动队列头索引,如果头索引等与尾索引那队列就为空了;getFile方法是用来获取队列最前面的项。如果为空返回0, setSize方法用来重新设置队列的容量,如果调用原来的数据就会被扔掉(这里作者是用数组来模拟环形队列,设置容量会重新实例化一个数组);isEmpty方法用来判断队列是否有空。

  备注:你也可以使用System.Collections命名空间下的Queue类。

  当点击了运行按纽后,程序会从获取路径文本框中获取文件名并把它加入到FileInfo结构(很奇怪这里作者的结构只是存了一个string)。最后把这个结构加入到了队列。QueueMonitorThread线程会半秒钟去扫描一次队列。


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

{
     FileInfo f = new FileInfo();

     f.fName=this.filename_box.Text;

     //如果队列已满那就等待队列有空时再添加FilInfo

     while ( req_queue.isEmpty()!=1)
     {
         if( req_queue.isEmpty() == 1 )

              break;

         Thread.Sleep(200);
     }
     req_queue.add(f);
}

  下面是继承窗体的构造函数。


public filedisplayer()

{
     InitializeComponent();

     req_queue = new RequestQueue();

     //设置队列容量为5

     req_queue.setSize(5);

     //默认监视线程没有终止

     m_bAbort = false;

     //实例会监视线程





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

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

相关文章

关注我们

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