![]() |
Thread in Thread erzeugen; ergibt das ein Problem bzgl. Handle?
Ich bin mit Threads wohl immer noch nicht so sicher, wie ich es gerne hätte und habe im Moment eine theoretische Frage. Und zwar habe ich einen StartupThread, der eigentlich alle Sachen erledigt, die beim Start des Programms anfallen. Innerhalb dieses Threads wird ein weiterer erzeugt. Stellt das ein Problem dar, oder ist das belanglos? Ich hatte neulich jedenfalls ein Problem mit einem Handle, welches ich innerhalb eines Thread alloziert habe. Und lustigerweise hängt sich die IDE genau an der Stelle auf, an der ich diesen Thread starten will. Lasse ich das Programm jedoch ohne Debugger laufen, so klappt es einwandfrei.
|
AW: Thread in Thread erzeugen; ergibt das ein Problem bzgl. Handle?
Wo ein Thread erzeugt wird, ist egal.
PS: Der Hauptthread ist auch nur ein Thread. :zwinker: Es gibt aber bestimmte dinge, welche an einen Thread gebunden sind. z.B. werden Windows/Fenster (VCL-Komponenten/TTimer und die entsprechenden Komponenten von Windows) nur in dem Thread behandelt, also in dessen Nachrichtenbehandlung (WindowsMessage-Schleife) bearbeitet, in welchem sie erstellt wurden. (auch darum sollte man nicht auf die VCL, innerhalb eines "anderen" Threads, zugreifen) |
AW: Thread in Thread erzeugen; ergibt das ein Problem bzgl. Handle?
Zitat:
|
AW: Thread in Thread erzeugen; ergibt das ein Problem bzgl. Handle?
Hm, okay, dann sollte das Problem nicht von dem Thread-In-Thread-Ding her kommen. Aber dann versteh ich immer noch nicht ganz, warum dann mein Programm abschmiert, wenn ich es aus Delphi heraus starte, sonst aber nicht... Teilweise gibts da schon Eigenheiten...
|
Dieses Thema wurde am "24. Jun 2010, 12:30 Uhr" von "SirThornberry" aus dem Forum "GUI-Design mit VCL / Qt / Common Controls" in das Forum "Algorithmen, Datenstrukturen und Klassendesign" verschoben.
|
AW: Thread in Thread erzeugen; ergibt das ein Problem bzgl. Handle?
Zitat:
Wozu sollte das gut sein? Weshalb wird dieser 2. Thread nicht im Hauptthread erzeugt? Beziehungsweise kann es sein dass Abhängigkeiten zwischen diesen beiden erzeugten Threads bestehen und der erste vor dem zweiten terminiert wird? Zitat:
Die Exception wird nicht an den Hauptthread weitergeleitet und somit nicht sichtbar. |
AW: Thread in Thread erzeugen; ergibt das ein Problem bzgl. Handle?
Hallo shark,
dies stellt defintiv kein Problem dar. Dem Thread ist es auch völlig egal von wem er gestartet wird. Er verhält sich deswegen nicht anders. Bzgl des Problems mit Delphi: 1. Hatten wir ja letztens schon, dass allocatehwnd nicht threadsicher ist. Vielleicht liegt es daran. 2. Was aber auch nicht "threadsicher" ist, ist der Debugger von Delphi. Soll heißen: Hier hat der Debugger Fehler und es muss nicht zwingend an deinem Programm liegen. Allerdings ist es generell schwer Threads zu debuggen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 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