Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#2

Re: Problem mit Threads und fmShareExclusive / fmShareDenyWr

  Alt 4. Jan 2008, 17:13
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.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat