AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Jedem Form seinen eigenen Thread?

Ein Thema von p80286 · begonnen am 7. Jun 2017 · letzter Beitrag vom 8. Jun 2017
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Jedem Form seinen eigenen Thread?

  Alt 7. Jun 2017, 07:40
Delphi-Version: 7
Da in der Literatur die Aussagen hierzu etwas widersprüchlich sind, frage ich Euch einmal.
Hat jedes Form einen eigenen Thread oder ist der "Anwendungsthread" für alle Forms zuständig?


Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: Jedem Form seinen eigenen Thread?

  Alt 7. Jun 2017, 07:45
Moin...
Zitat:
Hat jedes Form einen eigenen Thread oder ist der "Anwendungsthread" für alle Forms zuständig?
Der Anwendungsthread ist für alle Forms zuständig. Wo hast du was anderes gelesen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Jedem Form seinen eigenen Thread?

  Alt 7. Jun 2017, 08:47
Die VCL läuft nur in einem Thread, der zufällig absichtlich auch der Hauptthread/MainThread der VCL-Anwendung ist.
Die VCL wurde da gestartet/initialisiert und da in Windows Forms/Komponenten an den Thread gebunden sind, in welchem sie erstellt wurden (CreateWindow), landen auch alle ihre Messages in jenem Thread.

Die VCL nutzt untereinander globale nicht-threadsichere Objekte/Listen, also kann man die Forms nicht aufteilen.

Aber prinzipiell bietet Windows es an, dass man einzelne Forms/Komponenten in eigenen Threads erstellt, wenn man ihre Messages dort auch verarbeitet.
Die VCL verarbeitet von sich aus nur die Messages des MainThreads.
$2B or not $2B

Geändert von himitsu ( 7. Jun 2017 um 08:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Jedem Form seinen eigenen Thread?

  Alt 7. Jun 2017, 15:34
Danke!
Himitsu hat beinahe wörtlich das wiedergegeben, was mich so verunsichert hatte.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Jedem Form seinen eigenen Thread?

  Alt 7. Jun 2017, 17:30
Aber es gibt auch Möglichkeiten Fenster in separaten Threads unterzubringen, als Beispiel:
https://github.com/jaenicke/MTCL
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: Jedem Form seinen eigenen Thread?

  Alt 8. Jun 2017, 08:16
Da in der Literatur die Aussagen hierzu etwas widersprüchlich sind, frage ich Euch einmal.
Hat jedes Form einen eigenen Thread oder ist der "Anwendungsthread" für alle Forms zuständig?
Ein Blick in den Taskmanager (vorher Threadspalte unter "Ansicht" hinzuschalten), Process Explorer oder Co. beantwortet diese Frage sofort.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Jedem Form seinen eigenen Thread?

  Alt 8. Jun 2017, 09:00

Meine Beispielanwendung hat nach dem Start 1 Thread, nach dem Laden einer Datei 13, beim Lauf des zweiten Threads 18 und danach wieder 13!
Ich habe den Eindruck, daß da dll/Treiber ein "Thread-Eigenleben" führen.

Gruß
K-H

P.S.
andere Anwendungen geben sich mit weniger zufrieden. (1..5)
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#8

AW: Jedem Form seinen eigenen Thread?

  Alt 8. Jun 2017, 09:18
Meine Beispielanwendung hat nach dem Start 1 Thread, nach dem Laden einer Datei 13, beim Lauf des zweiten Threads 18 und danach wieder 13!
Ich habe den Eindruck, daß da dll/Treiber ein "Thread-Eigenleben" führen.
Das ist aber normal und Delphi-VCL-Anwendungen haben ein paar eigene. Auch bei anderen Anwendungen erhöht sich die Anzahl leicht, wenn du zum Beispiel den Dialog "Datei öffnen" startest. Teste mal an Notepad, keine Delphi-Anwendung

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 Uhr.
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