private void Form1_Load(object sender, System.EventArgs e)
{
StartToFillTree();
}
private void StartToFillTree( )
{
try
{
tvFolders.Nodes.Clear();
tvFolders.Nodes.Add( new TreeNode("Loading", -1, -1) );
Thread explorerThread = new Thread( new ThreadStart( FillTreeInAnotherThread ) );
explorerThread.Start();
}
catch (Exception exc)
{
//Do the catch
}
}
private void FillTreeInAnotherThread()
{
try
{
CreateTree(this.tvFolders);
}
catch (Exception exc)
{
//Do the catch
}
}
public void ClearTreeview( TreeView tv )
{
tv.Nodes.Clear();
}
public void AddNodeToTreeview( TreeView tv, TreeNode node )
{
tv.Nodes.Add( node );
}
public void CreateTree(TreeView treeView)
{
try
{
TreeNode hoofdNode = new TreeNode( "NodeNam", 0, 0);
AddDrivesToHoofdNode(hoofdNode); //This method takes 1 ms
//This part takes 905 milliseconds if I can believe my profiler !!?? -----
if( treeView.InvokeRequired )
{
treeView.Invoke( new ClearTreeviewDelegate( this.ClearTreeview ), new object[] { treeView } );
treeView.Invoke( new AddNodeToTreeviewDelegate( this.AddNodeToTreeview ), new object[] { treeView, hoofdNode } );
}
else
{
treeView.Nodes.Clear();
treeView.Nodes.Add(hoofdNode);
}
//End of 900ms part ?? -----
AddFavorieteFolders(treeView);//This method takes 1 ms
}
catch (Exception ex)
{
//Do some catching
}
}