![]() |
Delphi-Version: 10 Seattle
TDictionary beim lesen thread-safe?
Hallo,
mir ist klar, dass ein TDictionary beim Schreiben nicht thread-safe ist. Die Frage ist aber, kann ich von verschiedenen Threads lesend auf ein TDictionary zugreifen? Also mit den Methoden: - TryGetValue - ContainsKey - ... Ich habe das Gefühl, dass genau das bei mir manchmal zum Problem führt. Inhalt des Dictionaries sind nur Integer, String und TGUID (dies evtl. noch kombiniert in einem Record). Also keine Objekte die verändert werden könnten. Viele Grüße, Andreas |
AW: TDictionary beim lesen thread-safe?
Ohne etwas genaues zu wissen, ich wüsste nicht weshalb das ein Problem sein sollte. Solange es auch wirklich "read only" ist.
Kannst du Beispiel-Code geben der irgendwie unerwartetes Verhalten zeigt? |
AW: TDictionary beim lesen thread-safe?
Das hätte ich auch angenommen. Das reines "read-only" funktionieren sollte.
Leider kann ich keinen Code liefern, der auf meinen Fehler deuten kann. Da doch einiges an der Stelle abläuft und ich auch nicht sicher bin, ob es überhaupt damit zusammen hängt. Deshalb wollte ich dies erst mal grundsätzlich abklären, ob ein read-only zugriff problemlos möglich sein sollte. |
AW: TDictionary beim lesen thread-safe?
Sofern das Dictionary z.B. einen privaten Positionszeiger o.ä. für die Suche verwendet könnte es natürlich schon Probleme geben.
Da heißt: Du greifst zwar nur lesend zu, aber intern wird dabei auf den gleichen Speicherplatz mehrfach geschrieben. Bleibt also wohl nur, genauer in der Hilfe oder im Quelltext nachzusehen (kann ich gerade nicht tun). |
AW: TDictionary beim lesen thread-safe?
Was für einen Fehler hast Du denn? Sichere doch den Zugriff mit einer CriticalSection ab.
|
AW: TDictionary beim lesen thread-safe?
Zitat:
|
AW: TDictionary beim lesen thread-safe?
Zitat:
![]() Aber klar - ist vermutlich Glaubenssache (siehe meine Signatur) und sowieso OT. Edit: Wenn schon ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz