Das Event würde auslösen, wenn du aus deinem Thread nicht auf die MainForm zugreifen würdest. Durch den Zugriff auf die MainForm aus dem Thread heraus ist es so, als würdest du gar keinen Thread verwenden. Somit wird die
GUI blockiert und kann auch keine Events (oder nur verzögert) auslösen.
Was genau bezweckst du denn mit dem Zugriff auf deine MainForm? Nimmst du dir von dort die Daten oder willst du dort was aktualisieren? Wenn ja, dann löse Events aus dem Thread mit
Synchronize()
aus um was zu aktualisieren. Die Daten die du im Thread benötigst um zu rechnen solltest du mit einer Klasseninstanz an deinen Thread übergeben, sodass der Zugriff auf deine MainForm wegfällt.