Hi there,

I use threads to process something and then to display the result in a treeview.

This code works but the problem it does not add until all threads finishes. I want to keep adding as long as I am in FindFolders()

Here is my code:

VB Code:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Net;
  9. using System.Net.Sockets;
  10. using System.Threading;
  11. using System.Collections;
  12.  
  13. namespace MyProject
  14. {    
  15.     public partial class Form1 : Form
  16.     {
  17.         private delegate void AddNodeToTreeViewDelegate();
  18.  
  19.  
  20.         public Form1()
  21.         {
  22.             InitializeComponent();          
  23.         }
  24.  
  25.         private void Form1_Load(object sender, EventArgs e)
  26.         {
  27.                    
  28.         }
  29.  
  30.         private void button1_Click(object sender, EventArgs e)
  31.         {
  32.             int j;
  33.  
  34.             for (j = 1; j < 10; j++)
  35.             {
  36.                 ThreadStart starter = new ThreadStart(FindFolders);
  37.                 Thread t = new Thread(starter);
  38.                 t.Start();
  39.             }
  40.         }
  41.      
  42.         private void FindFolders()
  43.         {
  44.             //assume this is the folder name I want to display in the treeview
  45.             string folder_name = "test";
  46.  
  47.             [COLOR=Red]treeView1.Invoke(new AddNodeToTreeViewDelegate(AddNodeToTreeView), new object[] { folder_name });[/COLOR]
  48.  
  49.         }
  50.  
  51.         private void AddNodeToTreeView(string fname)
  52.         {
  53.             TreeNode p = new TreeNode(fname);
  54.             treeView1.Nodes.Add(p);
  55.         }
  56.  
  57.     }
  58. }