Wenn jeder Thread beim Erzeugen eine Kopie von MyConfig bekommt, dann wäre zumindest das Problem mit dem Mehrfachzugriff geregelt.
Noch besser wäre, wenn jeder Thread nur die Daten bekommt, die er auch braucht!
Wenn irgendjemand Geld vor dir möchte, dann gibst du ihm ja auch nicht deine Geldbörse mit
Bargeld, Kredit- und Visitenkarten, sondern du gibst ihm nur die Geldmenge die er haben will.
Aus dem gleichen Grund ist es unfein globale Objekte an Threads zu geben.
Fiktives Beispiel:
Delphi-Quellcode:
function CreateAndStartDatenleseThread: TDatenleseThread;
begin
Result := TDatenleseThread.Create;
Result.ComPort := MyConfig.ComPort;
Result.Baudrate := MyConfig.Baudrate;
...
Result.Resume;
end