Du erstellst eine Klasse, von der du ein Objekt an beide Threads übergibst:
Delphi-Quellcode:
type
TDatei=class
constructor Create; //FCriticalSection.Create
Destructor Destroy; override //fCriticalSection.free;
private
FFileName:string;
FCriticalSection:TCriticalSection;
public
property FileName:string;
procedure WritetoFile(const s:String);
end;
//...
procedure TDatei.WritetoFile;
begin
CriticalSection.Enter;
try
öffne Datei
schreibe Datei
schließe Datei
finally
CriticalSection.leave;
end;
end;
Jetzt kannst du aus jedem Thread einfach WritetoFile aufrufen und alles ist abgesichert.
(aber wird Dateiarbeit nicht auch vom
OS abgesichert
)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.