Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Ursachen für Threadfehler gesucht (https://www.delphipraxis.net/196318-ursachen-fuer-threadfehler-gesucht.html)

BlueStarHH 11. Mai 2018 11:52

Ursachen für Threadfehler gesucht
 
Hallo,

bei einem Anwender meiner Software erscheint sehr häufig der Fehler:

Code:
Exception EThread in Modul Meine.exe bei 00052F54
Threadfehler: Das Handle ist ungültig(6).
Merkwüdig ist, dass er in letzter Zeit immer öffter erscheint, so dass man fast gar nicht mehr sinnvoll mit dem Programm arbeiten kann. Der Fehler tritt weder bei mir noch bei anderen Anwendern auf. Ich benutze in meinem Programm keine selbsterstellen Threads (kann sein, dass es Komponenten intern machen, ohne dass ich darauf einfluss habe). Es passiert immer dann, wenn GUI-Controls (TEdit usw) mit Inhalten befüllt, unter Verwendung von LockWindowUpdate neu gezeichnet oder enabled/disabled werden. Weiter kann ich es nicht eingrenzen, da es nur auf dem PC des Anwenders passiert, wo ich keinen Debugger habe.

Was kann das sein? So allgemein vermutet. Kann es sein, dass das evtl. mit seiner Windows-Installation/Grafiktreiber zusammenhängt? Oder ist das ausgeschlossen?

KodeZwerg 11. Mai 2018 12:00

AW: Ursachen für Threadfehler gesucht
 
Handle ungültig kann vieles bedeuten, oftmals das ein "xyz.Create" versagt hat und man nicht auf Fehler reagiert.

BlueStarHH 11. Mai 2018 12:40

AW: Ursachen für Threadfehler gesucht
 
Zitat:

Zitat von KodeZwerg (Beitrag 1401824)
Handle ungültig kann vieles bedeuten, oftmals das ein "xyz.Create" versagt hat und man nicht auf Fehler reagiert.

Handelt es sich laut der Fehlermeldung um ein Thread-Handle oder nicht? Komisch ist auch, dass die GUI so aussieht wie immer und alles im Programm funktioniert. Es gibt keinerlei Fehlfunktionen, nur die Fehlermeldung stört...

Der schöne Günther 11. Mai 2018 12:42

AW: Ursachen für Threadfehler gesucht
 
Sowohl die Exception ("EThread") als auch der Errorcode 6 (INVALID HANDLE) passen eigentlich dazu wenn man an einem Thread etwas machen will (Priorität ändern, auf sein Ende warten, …) und es gibt ihn schon gar nicht mehr (z.B. weil
Delphi-Quellcode:
FreeOnTerminate = True
).

Hobbycoder 11. Mai 2018 16:16

AW: Ursachen für Threadfehler gesucht
 
Schon mal mit MadExcept probiert?

hoika 11. Mai 2018 16:26

AW: Ursachen für Threadfehler gesucht
 
Hallo,
Zitat:

Was kann das sein? So allgemein vermutet. Kann es sein, dass das evtl. mit seiner Windows-Installation/Grafiktreiber zusammenhängt? Oder ist das ausgeschlossen?
Kann mit dem Grafiktreiber zu tun haben, ja.

Schalt mal alle Optimierungen ab (lass abschalten), unter DieserPC -> Eigenschaften -> Erweitert -> Visuelle Effekte.

Der schöne Günther 11. Mai 2018 16:57

AW: Ursachen für Threadfehler gesucht
 
Das verstehe ich nicht. Wenn man keinen Ansatz hat könnte es natürlich mit allem zusammenhängen. Was ist denn hier das Indiz speziell für Grafiktreiber?

BlueStarHH 11. Mai 2018 19:44

AW: Ursachen für Threadfehler gesucht
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1401859)
Das verstehe ich nicht. Wenn man keinen Ansatz hat könnte es natürlich mit allem zusammenhängen. Was ist denn hier das Indiz speziell für Grafiktreiber?

Das Indiz ist der Teil:

Zitat:

Zitat von BlueStarHH (Beitrag 1401822)
Es passiert immer dann, wenn GUI-Controls (TEdit usw) mit Inhalten befüllt, unter Verwendung von LockWindowUpdate neu gezeichnet oder enabled/disabled werden. Weiter kann ich es nicht eingrenzen, da es nur auf dem PC des Anwenders passiert, wo ich keinen Debugger habe.

Das alles ist ja kein komplizierter Code, wo man im Code viel falsch machen könnte. Nur sowas in der Art:

LockWindowUpdate(...);
...
AEdit := TEdit.Create(AOwner);
AEdit.Left := LeftBorder;
AEdit.Text := Data[i].Text;
...
LockWindowUpdate(0);

Und wie gesagt, der selbe Code läuft bei meheren (> 100) Anwendern seit Jahren ohne Problem. Nur bei dem einen Anwender nicht. Das deutet doch drauf hin, dass es externe Ursachen gibt.

BlueStarHH 11. Mai 2018 19:50

AW: Ursachen für Threadfehler gesucht
 
Zitat:

Zitat von Hobbycoder (Beitrag 1401853)
Schon mal mit MadExcept probiert?

Nein, das wäre eine gute Idee. Doch momentan kann ich aus anderen Gründen das Projekt nicht compilieren. Wenns denn auch externe Ursachen wie z.B. den Grafiktreiber haben könnte, hätte ich erstmal gesagt, er soll den mal neu Installieren oder eine andere Grafikkarte nehmen damit er nicht so lange warten muss, bis ich wieder compileren kann...

KodeZwerg 11. Mai 2018 20:40

AW: Ursachen für Threadfehler gesucht
 
Kannst Du den betroffenen Anwender mal testen lassen ob es im Windows Safe-Mode funktioniert? So könnte man die Grafikkarte/Treiber eingrenzen als Ursache.


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

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