Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Threadstatus abfragen (https://www.delphipraxis.net/116632-threadstatus-abfragen.html)

Yellow579 3. Jul 2008 16:47

Re: Threadstatus abfragen
 
Hallo Luckie!

Zitat:

Zitat von Luckie
Hintergrund war der, dass wenn man in einem Destruktor die Objektreferenz auf nil setzt, es zu einer Exception kommt. Das hatte ich im Hinterkopf.

Das ist ein definitiv anderer Fall da es in dem Falle der Instanz an sich an den Kragen geht. Alles hier besprochene bezieht sich nur auf Dinge ausserhalb der Instanz und niemals der Instanz selber.

Zitat:

Zitat von Luckie
Jetzt, wo ich den Code vor mir habe, ist mir auch klar geworden, dass das natürlich ohne Probleme funktioniert muss.

Zitat:

Zitat von Yellow579
Bitte, lest die Beiträge in Ruhe durch, durchdenkt sie und dann postet. Am besten auch vorher mal ausprobieren und nicht gleich Blasphemie Ketzer schreien...

Hauptsache alle haben es verstanden und es funktioniert. Noch wichtiger: Die Problemlösung löst das Problem anstatt drumherum zu bauen.

Gruss
Yellow

DelphiManiac 3. Jul 2008 17:08

Re: Threadstatus abfragen
 
[OT]
@Yello579
Ich gebe hier niemanden recht, aufgrund von N-Beiträgen...
Es geht ja auch gar nicht darum, dein Beitrag hat sich nur wirklich komisch angehört.
Ich meine jetzt nicht aus fachlicher Sicht. Ich finde nur, das man nicht "erschüttert" sein muss über eine Frage, deshalb dachten wohl viele, dass du dich auf den Beitrag von Schwedenbitter beziehst...(u.a. ich). Aber du hast dich ja wirklich auf den Beitrag von Luckie bezogen, also lag ich falsch, sorry.

Ich bin froh, dass in dem Forum nicht jede Lösung gleich abgenickt wird, sondern auch hinterfragt wird,... wenn die Lösung sich als zweifelsfrei erkenntlich gibt, dann haben ja alle was davon.

Jetzt aber genug Off-Topic..

[/OT]

Yellow579 3. Jul 2008 17:48

Re: Threadstatus abfragen
 
Zitat:

Zitat von DelphiManiac
[OT]
@Yello579
Ich gebe hier niemanden recht, aufgrund von N-Beiträgen...[/OT]

Das bezog sich auch nicht auf dich, sondern auf den verlinkten Beitrag.

Egal, euch noch viel Spass!

Luckie 3. Jul 2008 20:39

Re: Threadstatus abfragen
 
Zitat:

Zitat von Yellow579
Bitte, lest die Beiträge in Ruhe durch, durchdenkt sie und dann postet. Am besten auch vorher mal ausprobieren und nicht gleich Blasphemie Ketzer schreien...

Jetzt platz mir aber gleich der Kragen. Ich habe lediglich deinen Vorschlag hinterfragt nicht mehr nicht weniger. Ich habe dich weder persönlich angegriffen noch habe deinen Vorschlag als Scheiße abgetan! Das habe ich dir jetzt schon mindestens drei mal gesagt, während deine persönlichen Angriffe mir gegenüber immer heftiger wurden. Aber ich war mi nicht bewußt dass ich es hier an scheinen mit einer unfehlbaren Programmier-Gottheit zu tun habe.

Solltest du nicht bereit sein über deine Vorschläge zu diskutieren, dann bist du hier eindeutig falsch. Aber wie ich sehe, hast du schon deine Konsequenzen gezogen. Gut so.

DelphiManiac 3. Jul 2008 20:58

Re: Threadstatus abfragen
 
Manche Sachen regeln sich von allein...

marabu 3. Jul 2008 21:20

Re: Threadstatus abfragen
 
Mahlzeit.

Da findet alle paar Monde mal ein neues Mitglied zu uns in die DP, das in der Lage ist sich auszudrücken, sich sogar die Zeit dazu nimmt und auch noch versteht worüber es schreibt und dann wird es nicht einmal angemessen begrüßt. Yellow hat hier wohlgemerkt keine Hilfe gesucht, sondern Hilfe angeboten. Jetzt habt ihr ihn weggeekelt. Ihr täuscht euch, wenn ihr glaubt, die DP könne sich sowas leisten. Ich wünsche mir da mehr Sozialkompetenz, insbesondere von einem Moderator.

Gute Nacht allerseits.

Luckie 3. Jul 2008 22:04

Re: Threadstatus abfragen
 
Zitat:

Zitat von marabu
Ich wünsche mir da mehr Sozialkompetenz, insbesondere von einem Moderator.

Falls du mich meinst. Nochmal ich habe weder seine Kompetenz angezweifelt noch bin ich der Meinung, dass ich ihn weg geeckelt habe. Alles, was ich getan habe, war seinen Lösungsvorschlag zu hinterfragen, weil ich ursprünglich der Meinung war, dass es nicht funktionieren könnte. Soll ich, nur weil sich jemand persönlich angegriffen, in seiner Ehre und in seiner Unfehlbarkeit fühlt, nichts sagen und keine Zwiefel äußern? Wenn wir soweit sind, dann sagt bitte Bescheid, denn dann brauchen wir kein Diskussionsforum und ich verlasse auf der Stelle das Forum.

haentschman 3. Jul 2008 22:09

Re: Threadstatus abfragen
 
[OT]
:wiejetzt:
Zitat:

und ich verlasse auf der Stelle das Forum.
... das scheint in letzter Zeit um sich zu greifen :gruebel:
... gibt es nicht wirklich wichtigeres ? :gruebel:
... hatte wir das nicht erst :gruebel:

:evil: unglaublich...
[/OT]

Daniel 3. Jul 2008 22:32

Re: Threadstatus abfragen
 
Ich bitte um allseitige Contenance.

Michael hatte einen Lösungsansatz in Frage gestellt - das ist völliglegitim. In Beitrag #10 hat er seinen Irrum bemerkt und damit hätte die Sache erledigt sein können. Aber ganz offensichtlich waren hier für die Entscheidung von yellow noch weitere Faktoren im Spiel, die mit diesem Thema nicht unmittelbar etwas zutun haben.

Die Beiträge #14 und #17 führe ich gegenwärtig auf Stress und ggf. schlechte Laune zurück. Das ist keinesfalles optimal, aber auch das müsst Ihr einem team-Mitglied zugestehen, ohne dass hieraus gleich eine grundsätzliche Richtung der DP abgeleitet wird.

Ich bedaure es, wenn konstruktive Mitglieder das Forum verlassen, aber das gehört leider dazu und manchmal kommen sie ja wieder.

Und nun bitte zurück zum Thema - weiteres OffTopic in diesem Thread blende ich aus.

Viktorii 17. Jul 2008 09:26

Re: Threadstatus abfragen
 
Zitat:

Zitat von Daniel
Und nun bitte zurück zum Thema - weiteres OffTopic in diesem Thread blende ich aus.

Wird gemacht. Ich habe zwei (hoffentlich nicht zu dumme) Fragen:

1.
Zitat:

Zitat von Luckie
Delphi-Quellcode:
unit Unit2;

interface

uses
  SysUtils, Classes;

type
  TTest = class(TThread)
  private
    { Private-Deklarationen }
  protected
    procedure Execute; override;
  end;

implementation

{ Wichtig: Methoden und Eigenschaften von Objekten in VCL oder CLX können
   nur in Methoden verwendet werden, die Synchronize aufrufen, z.B.:

      Synchronize(UpdateCaption);

   wobei UpdateCaption so aussehen könnte:

    procedure TTest.UpdateCaption;
    begin
      Form1.Caption := 'In einem Thread aktualisiert';
    end; }

{ TTest }

procedure TTest.Execute;
var
  i: Integer;
  s: String;
begin
  for i := 0 to 9999 do
  begin
    s := s + IntToStr(i);
  end;
end;

end.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    TestThread: TThread;
    procedure OnTerminate(Sender: TObject);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TestThread := TTest.Create(True);
  TestThread.OnTerminate := OnTerminate;
  TestThread.Resume;
end;

procedure TForm1.OnTerminate(Sender: TObject);
begin
  TestThread := nil;
end;

Okay, habe ich soweit verstanden... Ich habe es bis jetzt immer so gemacht, dass ich ein Object mit freeandnil freigegeben habe, nachdem ich es nicht mehr brauche. Funktioniert das jetzt auch noch, wo der Zeiger ja schon nil ist? Wenn nein, wie gebe ich den Speicher dann frei?

[edit]
kann man sich nicht auch einfach ein Feld im Thread Objekt erzeugen, welches mit true initialisiert wird und bei onTerminate auf false gesetzt wird? Diese könnte man dann ja
auch abfragen... Wiese macht man die Erkennung hier mit dem Zeiger?
[/edit]




2.
Zitat:

Zitat von Schwedenbitter
Delphi-Quellcode:
Procedure TTestThread.Ausgabe;
Begin
   Form1.Label1.Caption:=S;
End;

Procedure TTestThread.Execute;
Var
   I            : Integer;
Begin
   I:=0;
   While (I<=MaxInt) And Not Terminated Do
   Begin
      S:=FormatFloat('#,##0',I);   Synchronize(Ausgabe);
      Inc(I);
   End;
   S:='Thread beendet.';   Synchronize(Ausgabe);
End;

Ist diese Verwendung von Synchronize mit VCL Komponenten so richtig?

Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 Uhr.
Seite 2 von 3     12 3      

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