AGB  ·  Datenschutz  ·  Impressum  







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

Thread und Objekt

Ein Thema von Telefonkabel · begonnen am 21. Nov 2007 · letzter Beitrag vom 21. Nov 2007
Antwort Antwort
Telefonkabel

Registriert seit: 15. Jan 2007
94 Beiträge
 
#1

Thread und Objekt

  Alt 21. Nov 2007, 18:40
Hy!
Ich hab mla wieder ein Problem und zwar folgendes:
Es existiert eine Klasse TTestThread und eine Klasse TTest.
Ein Objekt TTest HAT ein Objekt der Klasse TTestThread.
Wenn ich nun einen Methode von TTest aufrufe, soll der dazugehörige Thread erstellt werden
und soll dann eine Methode des zu dem Thread gehörigen TTest-Objektes aufrufen.
Wie kann ich möglichst sauber realisieren?


Wäre super, wenn ihr mir helfne könntet, stehe hier voll auf dem Schlauch.
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Thread und Objekt

  Alt 21. Nov 2007, 19:07
Hallo Telefonkabel!

ich würde es vielleicht so machen (Pseudocode):


Delphi-Quellcode:
TTest = class; // forward

TTestThread = class(TThread)
private
  fTest: TTest;
protected
  procedure Execute; override;
public
  constructor Create(Test: TTest);
end;


TTest = class
private
  fTestThread: TTestThread;
  procedure StartedFromThread;
public
  procedure StartTest;

end;


implementation;


procedure TTestThread.Create(Test: TTest);
begin
  fTest:= Test;
end;


procedure TTestThread.Execute;
begin
  fTest.StartedFromThread;
end;

In der Methode "StartTest" könntest du den Thread
erstellen und ihm dabei das Objekt "TTest" übergeben.

Der Thread kennt dann die Methode "StartedFromThread",
in der du den gewünschten Code platzieren könntest.


Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
Telefonkabel

Registriert seit: 15. Jan 2007
94 Beiträge
 
#3

Re: Thread und Objekt

  Alt 21. Nov 2007, 19:15
Ja, aber wie mache ich das?
Ich rufe von meinem Hauptprogramm die Prozedur StartTest auf und wenn ich da drin dann den Thread createn will, weiß er doch trotzdem nicht welches Objekt er ist, oder?
Es müsste dann doch so aussehen:

Delphi-Quellcode:
procedure TTest.StartTest;
begin
   ftestthread := Ttestthread.create(??????Was kommt dann hier rein??????)
end;
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Thread und Objekt

  Alt 21. Nov 2007, 19:18
Mit "Self" übergibst du praktisch das Objekt,
in dem du dich gerade befindest.

Also müsste es so gehen:

Delphi-Quellcode:
procedure TTest.StartTest;
begin
  ftestthread := Ttestthread.create(self);
end;
Überdenke nur die Problematik, dass womöglich
unkontrolliert beliebig oft die Methode "StartTest"
aufgerufen werden könnte.
Das geht dann natürlich nicht gut...

Gruß
Pfoto
Jürgen Höfs
  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 07:02 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