Ist ein Timer nicht auch eigentlich ein Thread? Somit wäre es gleichwertig, ob ich per 2. Thread oder Timer den Fortschritt des 1. Thread "überwache".
Da ein Thread ja eher Teil der Business-Logik ist, ist es mMn gar nicht so verkehrt, dass der Arbeiter-Thread nicht selbstständig die
GUI ändern kann. Auch sollte ein Thread nicht unbedingt selbst entscheiden können müssen, wann die
GUI aktualisiert werden muss.
Insofern find ich eine Kombination aus der von ConnorMcLeod vorgeschlagenen Event-Property, plus einer Info wann diese feuern soll (z.B. alle 10% Fortschritt) die man dem Thread von Aussen mitgibt in diesem Fall sinnvoll. Dazu dann ruhig auch eine von Aussen abfragbare Property, die den aktuellen Fortschritt o.ä. ausgibt und schon ist man flexibel, wie man den Thread nutzen möchte.