Hallo besenmuckel,
wie ich vermutet hatte, liegt das "rad"-Problem tatsächlich am TreeView. Und zwar genauer bei TreeView.Current.Clear() bzw. TreeView.Current.Delete().
Natürlich braucht der Download auch einige Zeit, je nach Internetspeed, dann noch die Aufbereitung in ein JSON-String und die Übergabe der Daten in eine Collection.
Was aber geschieht dann? Beim ersten Suchlauf mit "rad" ist noch alles ok. Es dauert ein paar Sekunden und dann werden die Daten im TreeView angezeigt. Etwa 7.800 Einträge mit den entsprechenden Untereinträgen. Macht in Summe ca. 45.800 Einträge (TreeView.count).
Änderst du jetzt die Suche, z.B. durch den weiteren Buchstaben "i", wird das TreeView Item "Search", also die 45.800 items gecleared. Und das dauert........
Im Anhang findest du ein Projekt, mit dem ich den Punkt einmal simuliere.
Hier die Zeitmessungen für den ersten und den zweiten Durchlauf, um ein TreeView mit 10.000 Items zu füllen, zu löschen bzw. clearen und dann erneut zu füllen.
Im ersten Durchlauf werden bei mir 5 Sekunden benötigt, um das TreeView zu füllen.
Im zweiten Durchlauf auch wieder 5 Sekunden um zu füllen - aber über 30 Sekunden um das vorhandene zu löschen!!!
Erster Durchlauf:
FMain.btnFillTV_Click.18: Start: 20.01.2018 16:11:00
FMain.btnFillTV_Click.20: End delete: 20.01.2018 16:11:00
FMain.fillIT.38: Begin Clear: 20.01.2018 16:11:00
FMain.fillIT.40: End Clear: 20.01.2018 16:11:00
FMain.btnFillTV_Click.30: End: 20.01.2018 16:11:05
Zweiter Durchlauf:
FMain.btnFillTV_Click.18: Start: 20.01.2018 16:11:11
FMain.btnFillTV_Click.20: End delete: 20.01.2018 16:11:43
FMain.fillIT.38: Begin Clear: 20.01.2018 16:11:43
FMain.fillIT.40: End Clear: 20.01.2018 16:11:43
FMain.btnFillTV_Click.30: End: 20.01.2018 16:11:48
Es wäre prima, wenn du das einmal testen könntest und mir berichtest.
Wenn das Verhalten ähnlich ist, werde ich das einmal als Bug einstellen.
Danke und viele Grüße
gg