Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Thread startet nicht (Suspended) (https://www.delphipraxis.net/184943-thread-startet-nicht-suspended.html)

FAM 2. Mai 2015 13:24

Thread startet nicht (Suspended)
 
Hallo Zusammen,

ich habe das Problem das meine Threads alle nicht starten.

Als Beispiel:

Delphi-Quellcode:
// Kontruktor (Klasse abgeleitet von TThread)
constructor TThreadTest.Create
begin

inherited Create;
// Thread starten
Suspended := False;


end;
auf den einen Win7 läuft die Anwendung (Threads werden alle gestartet) und auf einen anderen Win7 nicht (beides 64 Bit)

hat jemand eine Idee?

Uwe Raabe 2. Mai 2015 13:59

AW: Thread startet nicht (Suspended)
 
Eigentlich sollte ein simples
Delphi-Quellcode:
inherited Create
bereits das
Delphi-Quellcode:
Suspended
auf
Delphi-Quellcode:
false
setzen. Damit wird der Thread in
Delphi-Quellcode:
AfterConstruction
gestartet - also nach dem eigentlich Create-Aufruf in deinem Code.

Das Problem liegt mit hoher Wahrscheinlichkeit also nicht in dem Code-Abschnitt, den du hier zeigst.

Captnemo 2. Mai 2015 16:05

AW: Thread startet nicht (Suspended)
 
Sollte man das nicht mit
Delphi-Quellcode:
inherited Create(False);
machen.
Siehe http://docs.embarcadero.com/products...ad_Create.html

Aviator 2. Mai 2015 16:57

AW: Thread startet nicht (Suspended)
 
Zitat:

Zitat von Captnemo (Beitrag 1300038)
Sollte man das nicht mit
Delphi-Quellcode:
inherited Create(False);
machen.
Siehe http://docs.embarcadero.com/products...ad_Create.html

Hatte ich auch gedacht, aber ein Blick in den Quellcode hat gezeigt, dass
Delphi-Quellcode:
inherited Create(False);
im Konstruktor automatisch aufgerufen wird wenn kein Parameter übergeben wurde.

Der schöne Günther 2. Mai 2015 17:14

AW: Thread startet nicht (Suspended)
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1300027)
Das Problem liegt mit hoher Wahrscheinlichkeit also nicht in dem Code-Abschnitt, den du hier zeigst

Dies. Meine Vermutung wäre dass deine Threads auf einer Maschine früh abstürzen. Dann ist halt Ende. In einem Thread bekommst du ohne weiteres keine Messageboxen mit rotem X und alles läuft weiter. Das ist nur im Hauptthread so.

Beleg von deinen Threads doch mal das OnTerminate-Event mit z.B. einem Schreiben in ein Memo oder einer Messagebox. Dann siehst du das schnell.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 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