System.SysUtils.TMultiReadExclusiveWriteSynchronizer.BeginWrite

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function BeginWrite: Boolean;

C++

bool __fastcall BeginWrite();

Propriétés

Type Visibilité  Source Unité  Parent
function public
System.SysUtils.pas
System.SysUtils.hpp
System.SysUtils TMultiReadExclusiveWriteSynchronizer

Description

Permet à un thread d'écrire dans la mémoire protégée quand il peut le faire sans risque.

BeginWrite obtient un verrou d'écriture exclusif sur la mémoire protégée par l'objet synchroniseur. Appelez BeginWrite avant d'écrire dans cette mémoire. BeginWrite ne se termine pas tant que d'autres threads lisent ou écrivent. Après l'appel de BeginWrite par un thread, tout autre thread qui demande à accéder à la mémoire en appelant BeginRead ou BeginWrite doit attendre que le thread en train d'écrire appelle EndWrite.

Remarquez qu'une opération de verrou d'écriture n'est pas atomique. Les données en mémoire protégée seront toujours dans un état cohérent au retour de BeginWrite, mais pas nécessairement dans le même état que lors de l'appel à BeginWrite. En règle générale, un thread doit toujours supprimer les échantillons précédents de la mémoire protégée après avoir transformé un verrou de lecture en verrou d'écriture. Le thread appelant peut toutefois déterminer si une modification d'état s'est produite en examinant la valeur de retour de BeginWrite : il s'agit de true si la mémoire protégée n'a pas été écrite par un autre thread, de false si un autre thread peut avoir modifié la mémoire protégée.

Voir aussi