AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thread)
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thread)

Ein Thema von a.def · begonnen am 14. Apr 2017 · letzter Beitrag vom 15. Apr 2017
Antwort Antwort
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#1

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre

  Alt 14. Apr 2017, 22:00
Wie du meinst, aber warum kannst du die nicht in eine Klasse verschieben?
Do you have the email of god??? --- I have to tell him that I'm happy to be born!
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#2

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre

  Alt 14. Apr 2017, 22:02
Siehe hier

Delphi-Quellcode:
type
 TThreads = class
 ...
 constructor Create(xyz: TMeinThread);
 itemX: TMeinThread;
 itemY: ....;
end;

type
 TMeinThread = class(TThread)
 ...
 constructor Create(xyz: TThreads);
end;
TThreads-constructor braucht TMeinThread, was unten drunter steht (geht nicht)
TMeinThread-contructor braucht TThreads, was oben drüber steht (das geht).

Und egal wie ich es wende, irgendeine der beiden Klassen braucht immer irgendwas was nicht zur Verfügung steht.

Ich könnte ja auch, wie du sagtest, TThread wegmachen und nur TMeinThread in der ObjectList verwenden aber dann habe ich echte Threads rumliegen die man ggf. gar nicht braucht.

Weil nicht jeder ListView-Eintrag braucht einen Thread (itemX). Manche brauchen auch nur ein itemY, was kein Thread ist.


Edit habe gerade nachgeguckt. itemY ist auch ein Thread aber in keinster Weise wie der von itemX.
Ich könnte irgendwie beide Thread-Units zu einer verschmelzen und dann im Konstruktor bestimmen, welcher Code in der Execute-Methode ausgeführt wird aber mhh..

Geändert von a.def (14. Apr 2017 um 22:09 Uhr)
  Mit Zitat antworten Zitat
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#3

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre

  Alt 14. Apr 2017, 22:09
Stelle dir vor, du hättest ein TData Objekt. Nur mal so als Gedankenspiel...
Dieses TData könnte die Daten halten, die du für deine ListView brauchst. Stelle dir vor, dass manche TData Instanzen in Wahrheit einfach vom Typ TMeinThread sind. Andere Instanzen (die, die keinen Thread brauchen) von TData sind in Wahrheit von einem anderen Typ. Stelle dir vor das ginge. Würde dir das helfen?

Edit: Du könntest auch beide Threads von der selben Basisklasse erben lassen und dann in der Liste einfach deinen Basisklassentyp setzen. Die beiden Kindthreadklassen dieser Basisklasse haben dann einfach unterschiedliche Execute Implementierungen.
Konkret: TMeinBasisThread erbt von TThread, TMeinXThread erbt von TMeinBasisThread, TMeinYThread erbt von TMeinBasisThread; ThreadList enthält Typen von TMeinBasisThread und TMeinBasisThread enthält alle wichtigen Felder, die du für die ListView brauchst.
Do you have the email of god??? --- I have to tell him that I'm happy to be born!

Geändert von BrightAngel (14. Apr 2017 um 22:15 Uhr)
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#4

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre

  Alt 14. Apr 2017, 22:23
Entweder ist es spät, oder ich bin einfach nur dumm. Denn verstanden habe ich kein bisschen
Ich lasse einfach erstmal alles so wie es ist.
  Mit Zitat antworten Zitat
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#5

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre

  Alt 14. Apr 2017, 22:30
Ich tippe auf zu spät. Wenn du magst, können wir das gerne vertagen. Ich würde da noch nicht aufgeben an deiner Stelle. Geduld zahlt sich aus
Schlaf gut!

Brighty
Do you have the email of god??? --- I have to tell him that I'm happy to be born!
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#6

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre

  Alt 14. Apr 2017, 22:35
Perfekt wäre natürlich eine Lösung wie die deine. Aber da muss ich erstmal gesund (aktuell krank) und ausgeschlafen durchblicken.

Bis später und danke für die Hilfe soweit

So. Edit.

Was ich mit meiner Idee gestern vermeiden wollte, war etwas sowas hier
Delphi-Quellcode:
if aThreadInfo.ThreadList.Items[iThreadID].iMode < 5 then
 bPaused := aThreadInfo.ThreadList.Items[iThreadID].itemX.bThreadSleeping
else
 bPaused := aThreadInfo.ThreadList.Items[iThreadID].itemY.bThreadSleeping;
Wenn bThreadSleeping nun in itemX (ein Thread) und itemY (ein anderer Thread) verfügbar wäre, könne ich an vielen Stellen Code sparen.

Geändert von a.def (15. Apr 2017 um 08:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.160 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre

  Alt 15. Apr 2017, 10:23
emm ich versuche mich mal an einer Antwort...

lege ich den Thread schlafen (ich prüfe einfach auf while bPause do ...
Sag mir bitte nicht, dass Du im Thread

While Pause do; geschrieben hast...

So etwas macht man so!

Du solltest Dir mal diese Tutorial ansehen...


Interfaces, nein danke
Sag ich nix zu...

Ich könnte das Problem umgehen, indem ich die Thread-Unit in die andere Unit, die den Thread erzeugt, verfrachte aber das will ich ehrlich gesagt nicht.
Ich welcher Unit es steht ist doch egal... Google mal Servicelocator oder Dependency-Injection!

Wenn bThreadSleeping nun in itemX (ein Thread) und itemY (ein anderer Thread) verfügbar wäre, könne ich an vielen Stellen Code sparen.
Wenn ich mal alles andere aus 8 lasse... Warum schickst Du nicht einfach eine Message über den MessageManager? Hierbei ist es egal in welcher Unit oder Ebene etwas steht. Mit einer Message kannst Du auch ein Object versenden (also die Referenz) oder Du versendest eine Callback Routine die der Empfänger aufrufen kann... (Oder ein Interface )

Ich lasse einfach erstmal alles so wie es ist.
Oder so...
  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 14:12 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