AGB  ·  Datenschutz  ·  Impressum  







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

Liste Thread sicher abholen

Ein Thema von oki · begonnen am 9. Jun 2008 · letzter Beitrag vom 10. Jun 2008
 
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

Liste Thread sicher abholen

  Alt 9. Jun 2008, 20:03
Hi Leute!

ich bin mir bei meinem aktuellen Thema nicht ganz sicher wie ich es angehen soll. Folgende Voraussetzung:
Ich habe eine eigene Klasse mit dem Vorfahren TThread. Diese Klasse besitzt eine Public-Eigenschaft WindowList vom Typ TStringList. Der Thread aktualisiert diese Liste fortlaufend in seiner Execute-Methode.
Nun möchte ich mit meiner Anwendung den Inhalt der Liste abholen. Ich habe den Verdacht, dass das so einfach nicht geht wenn ich die Liste öffentlich mache und dann durch die Items iteriere um alles auszulesen. Mein Thread könnte da ja was in der Zwischenzeit ändern. Ein Ereignis mittels Synchronize will ich aber auch nicht aus dem Thread losschicken, da es nicht nötig ist die Anwendung zu informieren.

Hier mal der Code zur Klassendeklaration:

Delphi-Quellcode:
type
  TShutDownThread = class(TThread)
  private
    FWindowList : TWindowList; // Liste der aktiven Fenster
    FShutDownList : TShutDownList; // Schließliste
    function GetWinParamObj(index: Integer): TWinParamClass;
    function GetShutDownObj(index: Integer): TWinParamClass;
  protected
    procedure Execute; override;
    procedure UpdateWindowList; // Fensterliste aktualisieren
  public
    constructor Create(CreateSuspended: Boolean); reintroduce; virtual;

    property ShutDownList : TShutDownList read FShutDownList;
    property ShutDownObj [index : Integer] : TWinParamClass read GetShutDownObj;
    property WindowList : TWindowList read FWindowList;
    property WinParamObj [index : Integer] : TWinParamClass read GetWinParamObj;
  end;
Ich glaube, dass sollte Ärger geben:
Delphi-Quellcode:
  For Counter := 0 to ShutDownThread.WindowList.Count - 1 do begin
    Obj := ShutDownThread.WindowList.Objects[Counter];
    ... und dann lesen wir schön aus und zeigen an
  end;
Sorry, hab grad versehentlich den absenden Button gedrückt. Hier noch schnell der Rest.

Ich dächte, dass geht in die Hose. Die Frage ist nun, wie sollte ich die Items threadsicher aus dem Thread holen?

Gruß oki

[edit] nach Hinweis von sirius Fehler im Code gefixt! [/edit]
42
  Mit Zitat antworten Zitat
 


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 22:32 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