![]() |
Re: TList<T>, TQueue<T>, TDictionary<T> Th
Zitat:
Zitat:
|
Re: TList<T>, TQueue<T>, TDictionary<T> Th
Zitat:
Zitat:
|
Re: TList<T>, TQueue<T>, TDictionary<T> Th
Zitat:
|
Re: TList<T>, TQueue<T>, TDictionary<T> Th
Naja, die Frage war ja eindeutig nur auf lesenden Zugriff gestellt - und solange auf gemeinsam genutzen Speicher kein Schreibzugriff erfolgt, ist solcher Code immer Threadsicher.
TThreadList ist für gemischt lesenden/schreibenden Zugriff gedacht. Und ich persönlich sehe in folgendem Codeabschnitt von TList keinen einzigen schreibenden Zugriff auf irgendeinen Speicherbereich:
Delphi-Quellcode:
Also wiederhole ich nochmal: Solange mehrere Threads ausschließlich lesenden Zugriff auf TList haben, ist das Threadsicher. TThreadList wird nur benötigt, wenn irgendein Thread gleichzeitig in die Liste schreibt.
function TList.Get(Index: Integer): Pointer;
begin if (Index < 0) or (Index >= FCount) then Error(@SListIndexError, Index); Result := FList^[Index]; end; |
Re: TList<T>, TQueue<T>, TDictionary<T> Th
Zitat:
|
Re: TList<T>, TQueue<T>, TDictionary<T> Th
Zitat:
Danke fuer die zahlreichen Antworten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 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 by Thomas Breitkreuz