"Normalerweise" geht das so:
Der Thread stellt eine Änderung im Fortschritt fest. Also will er den Daten des dazugehörigen Knoten das sagen (entweder kennt der Thread den Knoten oder der Knoten den Thread).
"Idealerweise" benutzt man dann ein Datenobjekt und/oder ein Callback. Ansonsten hat der Thread ne Abhängigkeit auf ne visuelle Komponente oder umgekehrt -> beides nicht wünschenswert. Beispielweise, wenn du mal den Fortschritt des Threads in eine Datei schreiben willst oder in der Konsole ausgeben willst.