AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Itemanzahl in einer TThreadList

Ein Thema von Tubos · begonnen am 2. Aug 2004 · letzter Beitrag vom 2. Aug 2004
Antwort Antwort
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#1

Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 16:39
Hallo;

wie kann ich - threadsicher - die Anzahl der Items in einer TThreadList feststellen?
var x: TThreadList; x.count gibt es nicht.

Und wenn ich direkt auf x.locklist.count zugreife, ist es doch nicht mehr threadsicher, oder?

Tubos
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 16:45
Zitat von Tubos:
Und wenn ich direkt auf x.locklist.count zugreife, ist es doch nicht mehr threadsicher, oder?
Doch genau dann ist es threadsicher:
Zitat:
LockList calls the Windows EnterCriticalSection function to lock the thread-safe list.
Zu mindest interpretiere ich so die Hilfe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#3

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 17:05
TThreadlist? Threadsicher?

Ich versteh nicht ganz..Was heißt das?
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 17:07
Delphi-Quellcode:
var
  x: TThreadList;
  L: TList;
...
// später
L := X.LockList;
try
  ShowMessage(IntToStr(L.Count));
finally
  X.UnlockList;
end;
(siehe auch Delphi-Beispiel zu Delphi-Referenz durchsuchenLockList

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 17:08
Zitat von General2004:
TThreadlist? Threadsicher?

Ich versteh nicht ganz..Was heißt das?
Dann schaue Dich mal im Forum nach [dp="thread*"]Threads, threading, multi-tasking, etc...[/dp] um. Eine Threadliste bietet die Möglichkeit aus verschiedenen, parallel laufendenn Teilen (Threads) einer Application gleichzeitig sicher auf eine Liste von Objekten zuzugreifen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#6

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 17:22
Zitat:
Code:
var
  x: TThreadList;
  L: TList;
...
// später
L := X.LockList;
try
  ShowMessage(IntToStr(L.Count));
finally
  X.UnlockList;
end;
Heißt das, ich muss die Liste manuell absperren?
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 17:24
Zitat von Tubos:
Heißt das, ich muss die Liste manuell absperren?
Schau mal hier, die Definition:
Delphi-Quellcode:
  TThreadList = class
  private
    FList: TList;
    FLock: TRTLCriticalSection;
    FDuplicates: TDuplicates;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Add(Item: Pointer);
    procedure Clear;
    function LockList: TList;
    procedure Remove(Item: Pointer);
    procedure UnlockList;
    property Duplicates: TDuplicates read FDuplicates write FDuplicates;
  end;
Ich würde sagen: eindeutig: JA.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#8

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 17:26
Habe gerade was in der Delphi-Hilfe gefunden:

Zitat:
]Die Methode LockList sperrt die thread-sichere Liste und gibt ein TList-Objekt zurück.

Delphi-Syntax:

function LockList: TList;

C++ Syntax:

TList* __fastcall LockList(void);

Beschreibung

Unter Windows ruft LockList die Windows-Funktion EnterCriticalSection zum Sperren der thread-sicheren Liste auf. Die Methode gibt das TList-Objekt zurück, in dem sich die Liste befindet.
Heißt das, ich kann über threadlist.locklist.count die Anzahl feststellen, ohne dass ich sie irgendwie sperren muss?
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#9

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 17:46
Zitat von Tubos:
Heißt das, ich kann über threadlist.locklist.count die Anzahl feststellen, ohne dass ich sie irgendwie sperren muss?
Der Aufruf von LockList - in Deinem Aufruf enthalten - sperrt die Liste bereits. Deswegen musst Du diese anschließend WIEDER FREIGEBEN.

Was an meinem obigen Code ist nicht verständlich

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#10

Re: Itemanzahl in einer TThreadList

  Alt 2. Aug 2004, 18:09
Achso...

was nützt mir dann eine "thread-sichere Liste", wenn ich an einigen Stellen sowieso manuell sperren muss?

edit:
ops...habe das ganze konzept falsch verstanden.
jetzt kapiere ich es.
Danke!
Lukas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz