ich habe ein kleines Threadproblem. Ich lasse in einem TreeView einen Baum erstellen, was gut und gerne 30 Sekunden dauert. Deshalb habe ich dafür einen extra Thread laufen. Allerdings aktualisiert sich der TreeView nicht.
Zuerst habe ich es mit:
Thread t = new Thread(new ThreadStart(funktion));
t.Start();
Nun habe ich es mit:
private void AssemblyTreeBox_Load(object sender, EventArgs e)
{
ct ctd = new ct(CreateTree);
ctd.BeginInvoke(null, null);
}
TreeView tmpTreeview = new TreeView();
public delegate void Updatetreedelegate();
void UpdateTree()
{
if (treeView1.InvokeRequired == false)
{
treeView1 = tmpTreeview;
treeView1.Refresh();
}
else
{
Updatetreedelegate upd = new Updatetreedelegate(UpdateTree);
this.BeginInvoke(upd);
}
}
private void CreateTree()
{
// ....
//Baummanipulation
UpdateTree();
// ....
}
In tempTreeView steht auch immer der richtige aktuelle Baum, nur leider wird beim sichtbaren treeView1 nichts angezeigt.
Wie bekomme ich es nun hin das sich der Baum stückchenweise aufbaut, und das auch angezeigt wird?