Japp, genau so ist es sirus. Der Unterschied zwischen Lesen und Schreiben wird einfach mit 2 binären Semaphoren von Delphi realsiert. Die könnte man auch selbst programmieren, ist aber hier nicht unbedingt nötig (wieso das
Rad neu erfinden?). TMultiReadExclusiveWriteSynchronizer macht, wenn mich nicht alles täuscht, nichts anderes als diese Semaphore zu realsieren.
So wie du es geschrieben hast, müsste es gut funktionieren. Trotzdem sollte man Multithread-Anwendungen natürlich immer ausführlich testen, weil es kann sein, dass es 1000x gutgeht, und dann beim 1001. mal (beim Kunden) nicht. Am besten wäre es, die Funktionalität zu beweisen, was aber sehr schwer ist. (Ich finde dieses Beweisen schon bei Single-Thread Anwendungen sehr schwer)