Das jetzigen Konzept ist wohl so:
Code:
DatenSection TCriticalSection
GrafikSection TMultiReadExclusiveWriteSynchronizer
Speichern-Thread:
- Enter DatenSection
- Daten entgegen nehmen und speichern
- Prüfen letzter Grafikerstellungszeitpunkt und ob Daten neue Daten vorhanden, wenn erforderlich
- Enter GrafikSection schreiben
- Daten lesen
- Grafik erstellen
- Schreiben Grafikerstellungszeitpunkt
- Exit GrafikSection schreiben
- Exit DatenSection
Webseite-Thread:
- Enter GrafikSection lesen
- Grafik lesen
- Exit GrafikSection lesen
Ich würde die Grafik nur dann erstellen, wenn diese auch wirklich gebraucht wird:
Code:
DatenSection TCriticalSection
GrafikSection TMultiReadExclusiveWriteSynchronizer
Speichern-Thread:
- Daten entgegen nehmen
- Enter DatenSection
- Daten speichern
- Exit DatenSection
Webseite-Thread:
- Enter DatenSection
- Prüfen letzter Grafikerstellungszeitpunkt und ob Daten neue Daten vorhanden, wenn erforderlich
- Enter GrafikSection schreiben
- Daten lesen
- Grafik erstellen
- Schreiben Grafikerstellungszeitpunkt
- Exit GrafikSection schreiben
- Exit DatenSection
- Enter GrafikSection lesen
- Grafik lesen
- Exit GrafikSection lesen