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

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


     QueueMonitorThread = new Thread( new ThreadStart(QueueMonitorfunc));

     QueueMonitorThread.Start();

     //代理更新TreeView,BeginInvoke

     onTreeViewElement = new ThreadEventDelegate(populateTreeView);
}

  下面是线程的执行方法。


public void QueueMonitorfunc()

{
     while( true)
     {
         if(isAbort())//判断线程是否跳出循环,结束线程
         {
              break;
         }
         Object o = req_queue.getFile();//从队列获取文件

         if( (o  is FileInfo ))//队列是否为空

         {
              FileInfo f = (FileInfo)req_queue.getFile();

              string filename = f.fName;

              parse(f);//启动一个线程处理

              req_queue.remove();//从队列中移出文件
         }
         Thread.Sleep(500);
     }
}

  请注意上面的QueueMonitorThread线程,他自己不处理文件。只是检测队列,如果有文件存在就调用parse方法,而parse方法为每个文件处理生成一个线程。

  方法内容如下:


private void parse(FileInfo info)

{
              //返回一个线程

     Thread t = parserThread.CreateThread (new parserThread.Start(parserMethod), info);

     t.Start ();

     //阻塞调用线程

     t.Join (Timeout.Infinite);






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

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

相关文章

关注我们

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