![]() |
Threads, TStringlist und CriticalSection
Moin,
Ich habe ein Programm, das mehrere Threads startet, die auf eine globale TstringList zugreifen. (Es wird nur gelesen, nicht gelöscht, eingefügt oder geschrieben.) Funktioniert auch ganz gut. Hier ein Beispiel, wie es bei mir ungefähr aussieht:
Delphi-Quellcode:
"list" enthält ~ 20000 Einträge.
var list:tstringlist;
procedure mythread; var i:integer; s:string; begin for i:=0 to pred(list.count) do begin s:=list[i]; //"s" verarbeiten end; end; procedure startthreads; var i:integer; c:cardinal; begin for i:=1 to 20 do beginthread(nil,0,@mythread,nil,0,c); end; Dann habe ich gehört, dass ich ich die komplette For-Schleife in eine CriticalSection schreiben muss. Ist das wirklich nötig? Es funktioniert ja auch ohne... und würde den Vorgang doch eig. nur unnötig verlangsamen oder? Oder können ohne CriticalSection sonst noch andere Probleme auftreten? |
Re: Threads, TStringlist und CriticalSection
Zitat:
|
Re: Threads, TStringlist und CriticalSection
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 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