System.SysUtils.TMultiReadExclusiveWriteSynchronizer.BeginWrite

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function BeginWrite: Boolean;

C++

bool __fastcall BeginWrite();

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.SysUtils.pas
System.SysUtils.hpp
System.SysUtils TMultiReadExclusiveWriteSynchronizer

Beschreibung

Ermöglicht einem Thread den Schreibzugriff auf den geschützten Speicher, wenn dies ohne Konflikte möglich ist.

BeginWrite bewirkt eine exklusive Schreibsperre für den Speicher, den das Synchronisierungsobjekt schützt. Die Methode BeginWrite wird vor einem Schreibzugriff auf diesen Speicher aufgerufen. Die Rückkehr von BeginWrite erfolgt erst, wenn kein anderer Thread einen Lese- oder Schreibzugriff auf den Speicher ausführt. Nach dem Aufruf von BeginWrite durch einen Thread müssen alle anderen Threads, die über BeginRead oder BeginWrite einen Zugriff auf den Speicher anfordern, warten, bis der schreibende Thread EndWrite aufruft.

Eine Schreibsperroperation ist nicht atomar. Beachten Sie, dass sich die Daten im geschützten Speicher bei der Rückkehr von BeginWrite immer in einem konsistenten Zustand befinden, jedoch nicht zwangsläufig im gleichen Zustand wie beim Aufruf von BeginWrite. Allgemein gilt, dass ein Thread alte Daten aus dem geschützten Speicher immer verwerfen sollte, bevor er von einer Lese- in eine Schreibsperre übergeht. Durch die Überprüfung des Rückgabewerts von BeginWrite kann der aufrufende Thread feststellen, ob eine Zustandsänderung stattgefunden hat: true, wenn kein anderer Thread in den geschützten Speicher geschrieben hat; false, wenn ein anderer Thread den geschützten Speicher geändert hat.

Siehe auch