Nein
Insbesondere bei GetText wäre es contraproduktiv.
BeginUpdate / EndUpdate schaltet das Neuzeichnen des Trees aus. Das benutzt man immer dann, wenn man Große Veränderungen am Baum macht.
Mit Deinem Code hast Du nicht nur das Neuzeichnen (was extrem viel Zeit kostet) nicht ausgeschaltet, sondern mit ProcessMessages auch noch forciert. Das macht die Ganze Operation extrem Langsam, weil der Baum bei jedem Hinzufügen neu Zeichnet und bei 50.000 mal einen Sekundenbruchteil zeichnen macht halt in Summe schon ne stange Zeit.
Also: BeginUpdate / EndUpdate nur um Massenänderungen (Baum komplett Laden, Sub-Bäume löschen / Hinzufügen) benutzen. UNd dann bitte Application.ProcessMessages auch weglassen.
Wenn die Operation dann immernoch regelmäßig mehr als 2 oder 3 Sekunden dauert kannst Du Dir überlegen, ein kleines 'Ich lade...' Fenster modal anzuzeigen und nach der Operation wieder auszublenden.