![]() |
Zugriff zwischen zwei Threads
Hallo!
Da ich mich mit Threads nicht auskenne, habe ich zwei simple Fragen: Ich habe einen Thread in dem nur eine Schleife läuft. 1. Wie kann ich aus diesem Thread herraus eine Komponente des Formulars (das ja logischerweise in einem anderen Thread - im Hauptthread läuft) aufrufen? 2. Beendet sich der Thread automatisch nach ablauf der Schleife, oder muss ich das selbst machen? Danke schon mal für jede Antwort Grüße Faux |
Re: Zugriff zwischen zwei Threads
Zu 2.: Ja, der Thread beendet sich. Allerdings weiß ich nicht, dazu befragst du am besten die Doku, ob das Thread-Objekt (also der .NET-Wrapper) auch freigegeben wird.
Einen Zugriff sollte man immer synchronisieren. Wei du das in .NET machst, ist mir allerdings unbekannt. Außerdem wäre da noch da Problem, daß die eigentlichen drunterliegenden APIs nicht alle threadsafe sind. Ob es die angebotenen Objekte also sind, ist noch eine andere Frage. |
Re: Zugriff zwischen zwei Threads
Danke für die Antwort!
Wie könnte ich ansonsten das folgende Problem lösen: Ich berechne in einer FOR-Schleife, die in einem eigenständigen Thread läuft, pro Durchlauf einen String. Nach jedem Durchlauf soll dieser String dann in eine Komponente (listView) geschrieben werden. Auf die Komponente kann ich aber nicht einfach so zugreifen, da diese ja in einem seperaten Thread läuft... Bin für jeden Vorschlag dankbar. Grüße Faux |
Re: Zugriff zwischen zwei Threads
Zitat:
|
Re: Zugriff zwischen zwei Threads
Kann man den Thread eigentlich Pausieren?
|
Re: Zugriff zwischen zwei Threads
Sollte gehen, aber was soll das bringen? Im Gegensatz zu Fibers ist das nicht sonderlich gut steuerbar. Am sichersten ist es, wenn sich ein Thread selber schlafenlegt.
Stichwort: Suspend |
Re: Zugriff zwischen zwei Threads
Zitat:
|
Re: Zugriff zwischen zwei Threads
Zitat:
|
Re: Zugriff zwischen zwei Threads
Ja, das ist schon richtig so, nur wie würdest du das lösen?
Ich würde eine Globale Variable haben, in die der Thread seinen String schreibt. Der Overhead Nimmt dann den String und macht was damit, dann wird der String wieder gelöscht. Der Thread wartet enzwischen auf das Löschen des Strings und fährt dann fort. NUR: Wie weißt der Overhead, dass der String jetzt bereit ist? Dan müsste ich ja erst wieder im Overhead ne Schleife laufen lassen, oder? Kann sein, dass du das jetzt GANZ anders meinst... ;) Bitte nen mal kurz ein Bsp, wenn das so ist... Grüße Faux |
Re: Zugriff zwischen zwei Threads
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 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 by Thomas Breitkreuz