![]() |
Ursachen für Threadfehler gesucht
Hallo,
bei einem Anwender meiner Software erscheint sehr häufig der Fehler:
Code:
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.
Exception EThread in Modul Meine.exe bei 00052F54
Threadfehler: Das Handle ist ungültig(6). Was kann das sein? So allgemein vermutet. Kann es sein, dass das evtl. mit seiner Windows-Installation/Grafiktreiber zusammenhängt? Oder ist das ausgeschlossen? |
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.
|
AW: Ursachen für Threadfehler gesucht
Zitat:
|
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
|
AW: Ursachen für Threadfehler gesucht
Schon mal mit MadExcept probiert?
|
AW: Ursachen für Threadfehler gesucht
Hallo,
Zitat:
Schalt mal alle Optimierungen ab (lass abschalten), unter DieserPC -> Eigenschaften -> Erweitert -> Visuelle Effekte. |
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?
|
AW: Ursachen für Threadfehler gesucht
Zitat:
Zitat:
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. |
AW: Ursachen für Threadfehler gesucht
Zitat:
|
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 05:22 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