Eine TCriticalSection sperrt aber immer komplett beim Lesen und Schreiben (Enter..Leave), der TMultiReadExclusiveWriteSynchronizer sperrt aber immer nur bei Schreibzugriffen (BeginWrite..EndWrite).
Somit sind die schon mal A sehr verwandt und B in einer MultiThread-Umgebung besser.
Wenn sich aber beim Lesen etwas verändert, dann zählt das als Schreibzugriff und muß ebenfalls gesperrt werden.
z.B. das Auslesen eines Streams, wo sich ja der Positionszeiger ändert.
Ein Therapeut entspricht 1024 Gigapeut.