Jeder Entwickler stand schon einmal vor genau diesem Problem. Man hat versucht aus einem anderen Thread versucht die Oberffläche, welche im Main-Thread läuft, zu aktualisieren.
Umachtsam wie man ja so ist, macht es direkt BOOM und man bekommt eine Exception die einem sagt wie doof man doch ist so etwas zu tun.
Man hat dann normalerweise eben kurz ein paar Invokes benutzt und alles funktionierte.
Doch jetzt der Hammer überhaupt, eigentlich darf man das gar nicht erzählen, aber ich mach es trotzdem. Ich wette ihr kennt es nicht und ich möchte das nur als "Good to know" anbieten, bitte nicht benutzen, very unsauber.
Es gibt im .NET Framework eine Eigenschaft die man setzen kann, damit diese Checks auf illegale threadübergreifende Vorgänge NICHT gemacht wird und man somit diese Exception nicht bekommt und alles auch OHNE Invokes funktioniert.
System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;
Probiert es doch mal aus, aber bitte nicht produktiv benutzen.