Dass eine andere Anwendung mit den Flags gesperrt wird hat schon seinen Sinn. Eine Ebene tiefer existiert genau dasselbe Problem bei mehrere Threads. Der gleichzeitige Zugriff über ein Dateihandle (das nutzt TFileStream ausgiebig) mit mehreren Threads funktioniert eben nicht immer. Gleichzeitiges Lesen dürfte kein Problem sein, doch schon beim Schreiben und Lesen oder sogar doppeltem Schreiben, können mehrere Datenbereichen im Müll enden.
Da die
WinAPI (die nutzt ja TFileStream) nicht threadsicher ist, ist es die Aufgabe des Programmierers zu verhindern, dass mehrere Threads gleichzeitig auf dieses
Handle zugreifen. Du musst es also koordinieren, sei es mit Critical Sections oder anderen Mechanismen.
Ich weiß grade garnicht, was passiert wenn jeder Thread sein eigenen TFileStream hätte. Ich vermute aber mal stark, dass die Flags den Zugriff auf Handleebene steuerun und nicht auf Prozessebene.