Einzelnen Beitrag anzeigen

Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

Re: Threads und records / record-var "nicht mehr da/gül

  Alt 31. Mär 2006, 11:00
Zitat von NicoDE:
Zitat von Meta777:
Aber die lokale Variable befindet sich doch im Stack des jeweiligen Threads!?
Nope, im lokalen Stack der aufrufenden Funktion (dieser ist nach dem Verlassen der Funktion nicht mehr gültig).
Bedeutet das nun wenn 2 Threads "gleichzeitig" die procedure procedure "TfrmProt.Add2Prot(const AStr: String);" aufrufen, dass es dann nicht gehen kann?

Und wird beim Aufruf von TLog.Add(prtData) der Record kopiert oder nur ein Pointer weitergegeben?
Delphi-Quellcode:
procedure TfrmProt.Add2Prot(const AStr: String);
var
  prtData: TDaPrtData;
begin
  FillChar(prtData, SizeOf(prtData), #0);
  prtData.Msg := AStr;
  TLog.Add(prtData); //WIRD DER RECORD HIER KOPIERT????
end;
  Mit Zitat antworten Zitat