![]() |
Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Ich würde gerne eure Meinung hören ob das vollkommen sinnfrei ist.
Ich würde gerne eine Main-VCL-Form starten, diese hat verschiedene Objekte, Listen und Co. Nun sollen verschiedene Jobs über Threads gestartet werden. (per Klick auf Buttons). Diese Jobs haben nichts miteinander zu tun, kommen sich also nicht gegenseitig ins Gehege. Ich möchte das die Threads Vcl Formen erstellen und diese steuern. Wenn der Job der erstellten Form erledigt ist, fragt der Thread das Ergebnis über eine Propety ab, verarbeitet das Ergebnis, zerstört die Form und sendet das Ergebnis an die "Main-Form". Kann man generell so vorgehen, oder ist dieses Konstuckt abartig. Mich würden da einfach mal eure Meinungen Interessieren. Es gibt auch noch keine Zeile Code sondern nur eine Idee für ein zukünftiges Projeckt. Gruß SM;) |
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Hello.
Wozu soll denn der Thread extra ein Formular erstellen. Wenn es nur dafür benötigt wird, kann man doch einfacher mit Klassen/Objekten arbeiten? Grüße, Ebenfalls SM |
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Für den Zweck musst du dann non-VCL Fenster benutzen. Das funktioniert dann problemlos.
|
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Threads und VCL-Forms ist ein No-Go.
Da wird es früher oder später gewaltig krachen. Hintergrund: Alle Windows-Handles/GDI-Ressourcen sind nur im erzeugenden Thread gültig. Du erzeugst zwar das Formular im Thread (und damit könnt man in diesem Thread drauf zugreifen). Es wird aber auch öfter auf die globalen Instanzen Screen und Application zugegriffen, welche Handles haben welche im Hauptthread erzeugt wurden. Und bei diesen wird es dann früher oder später krachen. |
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Ich möchte eine eigentlich über den Thread eine eigenständige Form erstellen die NICHT auf die Mainform zugreift (sondern wirklich eigenständig arbeiten) die Ergebnisse würden vom Thread ausgelesen und verarbeitet werden.
Der Thread soll ja eine sichtbare Form erstellen, sonst könnte ich ja den Thread selbst den Job tun lassen. Ich würde ja gerne den Thread die "Steuerung" der Formen überlassen. Ps: NonVcl ?? Hatte ich noch nie zwischen meinen Fingern. Ich denke daher das der Mehraufwand größer wäre als das Projekt "anders" zu planen. Natürlich kann man auch mit klassen und Co Arbeiten, Ich würde aber gerne wissen was mit Threads möglich ist. Wobei mir klar ist das Threads mit sichtbaren Komponenten nicht gerade einfach und gut Kirschen-essen ist. Alle Anregungen sind willkommen:) Gruß SM;) |
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Zitat:
|
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Die einzige Arbeit die eine Form erledigen sollte, ist die Kommunikation mit dem Benutzer. Man spricht deshalb auch vom UI (UserInterface). Eine freundliche UI ist vor allem immer aufmerksam (responsive).
Ein Download500GbFileFromInternet Button sollte nichts weiter machen als auf diesen Wunsch des Benutzers zu reagieren und entsprechend weiterleiten. Die gewünschte Aktion selber wird im Hintergrund (Thread) erledigt weil sonst die UI für Minuten/Stunden nicht mehr reagiert. |
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Zitat:
Besser wäre es das Formular normal zu erzeugen und den Workerthread vom Formular erzeugen zu lassen. Es gibt genügend Möglichkeiten dann vom Thread die Aktualsierungsinformationen ans Formular zu bringen. |
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Hmmm, ich würde den Thread nicht mit der Form verdengeln.
Besser ist es eine Aufgabe zu definieren, die dann in einem Thread erledigt wird. Diese Aufgabe kann dann auch in einer Form dargestellt werden. Nur so hat man ein Konzept, wo es nicht notwendig ist, die Form zwangsweise geöffnet zu haben (weil ja die Verarbeitung der Aufgabe noch nicht abgeschlossen wurde). Der Benutzer/Programmierer kann jetzt frei entscheiden, ob man einer Aufgabe zusehen möchte oder muss. |
AW: Mit Threads sichtbare Formen erzeugen. Macht das Sinn?
Dafür implementiert bei uns das Formular ein Interface, das die Meldungen bekommt. Das muss natürlich nicht da sein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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