Das heißt, ich definiere mir sowohl im Hauptthread als auch im Arbeitsthread einfach eine TStringList (oder möglicherweise auch eine TObjectList?) in die ich in beiden Richtungen mittels TCriticalSection gesichert schreiben kann.
Wenn es nur ein paar Arten von Daten sind, und die Zugehörigkeiten klar ersichtlich, bin ich so faul die Listen in die Form-Klasse bzw. die Thread-Klasse zu legen. Sauberer wäre ein eigenes Kommunikationsobjekt, dass sich dann auch komplett selbst um die Synchronisierung kümmert. (Die ist hier lebensnotwendig.)
Könntest du mir das noch genauer erläutern? Das hab ich nicht so ganz verstanden.