Einzelnen Beitrag anzeigen

uups

Registriert seit: 23. Aug 2004
68 Beiträge
 
#1

TMonitor: Klassenmethoden benutzen oder neue Instanz erstellen?

  Alt 25. Apr 2019, 20:48
Hallo!

Immer wieder lese ich von spürbaren Performance-Steigerungen durch den Einsatz von TMonitor anstelle von TCriticalSection. Es werden sogar per default die TMonitor-Klassenmetoden aufgerufen, wenn man die TCriticalSection in den plattformübergreifenden Anwendungen einsetzt. Dabei verstehe ich nicht ganz, wie der Schutzmechanismus von TMonitor funktioniert. Ich meine, im Fall der TCriticalSection erstelle ich für jeden zu schützenden Bereich eine eigene Instanz davon und betrete diese bei jedem Zugriff auf den "Schützling". Bei TMonitor werden immer nur die Klassenmethoden wie Enter und Exit aufgerufen (zumindest habe ich kein einziges Beispiel gefunden, wo es nicht der Fall wäre). Was passiert wenn ich mehrere zu schützende Variablen habe? Wie ekennt TMonitor, was zu schützen ist?

Auch erwarten die Enter() und Exit() von TMonitor einen TObject als Parameter. In allen Beispielen wird hier eine einfache, nur für diesen Zweck erstellte Instanz von TObject übergeben. Das verstehe ich auch nicht ganz.
  Mit Zitat antworten Zitat