AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Multithreaded/MultiprocessTabbed-UI - wie realisieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Multithreaded/MultiprocessTabbed-UI - wie realisieren?

Ein Thema von Codehunter · begonnen am 30. Apr 2018 · letzter Beitrag vom 8. Mai 2018
Antwort Antwort
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Multithreaded/MultiprocessTabbed-UI - wie realisieren?

  Alt 2. Mai 2018, 10:05
Wäre es nicht sinnvoll, dann den Import per abgesetzten Prozess anzustoßen? Dann kann der kleine Import-Prozess mit der DLL abstürzen wie er will und du kannst ihn von außen steuern.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#2

AW: Multithreaded/MultiprocessTabbed-UI - wie realisieren?

  Alt 2. Mai 2018, 11:25
Hängt euch nicht zu sehr an der Importproblematik auf. Das war letztlich nur der Stein des Anstoßes. Das Thema als solches, also grundlegend, hat mich interessiert. Also wie man, so man das wollte, eine Multi-Prozess-Anwendung mit Tabbed-UI sinnvollerweise konstruieren sollte und ob aus euren Erfahrungen heraus der Aufwand lohnt.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Multithreaded/MultiprocessTabbed-UI - wie realisieren?

  Alt 2. Mai 2018, 13:22
Mach es nicht! Der Aufwand ist nicht immens hoch. Hatten wir nicht neulich dazu einen Thread?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Multithreaded/MultiprocessTabbed-UI - wie realisieren?

  Alt 2. Mai 2018, 14:15
Vor allem sind die MultiProcess-Umsetzungen nicht vorrangig wegen der Verbesserung durch Multithread entstanden, sondern wegen der Sicherheit von "unsicheren"/schrottigen Programmen/Codes.

Fehler in einem "Tab" sorgen nicht für den Absturz des gesamten Programms.
Und auch Fehler in punkto Sicherheit werden ausgeglichen, da getrennte Speicherbereiche und kein Zugriff auf Speicher der anderen Tabs (z.B. Passwörter/Verschlüsselung über Webseitengrenzen auslesen)


Multithread alleine bringt auch selten Vorteile, wenn/da die GUI-Frameworks oftmals nicht threadsave sind. Das umgeht man durch Multiprozess, da jeder seine eigenen globalen Objekte besitzt, falls man das nicht untereinander verknubblt.

Rechenintensive Dinge sollte man eh nicht im GUI-Thread machen, womit es selten Vorteile bringt das Wenige auch noch auf mehrere Threads/Prozesse zu verteilen.
Mit nur Multithread wird es sogar schlimmer, wenn man dann auch noch ständig synchronisieren muß.


OK, eines der Speicherprobleme bei 32 Bit wird auch behoben, da jeder Prozess seine eigenen 2/4 GB virtuellen Speicher besitzt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Mai 2018 um 14:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#5

AW: Multithreaded/MultiprocessTabbed-UI - wie realisieren?

  Alt 2. Mai 2018, 14:27
OK, eines der Speicherprobleme bei 32 Bit wird auch behoben, da jeder Prozess seine eigenen 2/4 GB virtuellen Speicher besitzt.
Daran hab ich noch gar nicht gedacht! Haste Recht! Wobei ich ja nicht NUR mit der Starter unterwegs bin sondern durchaus auch (ältere) Professional habe, getrennt nach gewerblich und Hobbyprojekt. Insofern baue ich das meiste eh in 64 Bit.

Die Abschottungsproblematik ist auch in meinem Fall die treibende Kraft für die Idee, weil ich viel mit externem Code in Form von DLLs arbeiten muss. Das obige Import-Beispiel ist nur eins von mehreren. Wenn ein "getabbter" Prozess crashen sollte, wäre halt meine Wunschvorstellung gewesen, dass eben auch nur dieser Tab geschlossen würde und nicht die gesamte Anwendung. Das Konzept würde jedenfalls gut zum bisherigen Anwendungsdesign passen, das bereits ein Tabbed-UI ist, nur eben single-threaded.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Multithreaded/MultiprocessTabbed-UI - wie realisieren?

  Alt 2. Mai 2018, 15:08
Mach es nicht!
Ich habe etwas ähnliches gebastelt. Die drei WorkerThreads zu definieren und eine reagierende Oberfläche ist nicht soo das Problem. Aber wenn Dir andere Prozesse hineingrätschen können, mußt Du jede erdenkliche Fehlerkonstellation beachten.
Die einfache Möglichkeit ist natürlich ein Log zu erstellen, das dann hinterher jemand abarbeiten muß. Je nach Datenabhängigkeit ist dann natürlich großes Aufräumen angesagt. Was intelligent Logs etwas erleichtern.
Meiner Meinung nach sind aber beide Wege ähnlich aufwendig.

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

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Multithreaded/MultiprocessTabbed-UI - wie realisieren?

  Alt 8. Mai 2018, 13:37
Mach es nicht!
dito von mir. Wenn du das absichern willst, dann mache das nahemöglichst bei der DLL.

Zur Ausgangsfrage noch: Von MS dafür vorgesehen ist/war OLE.
Das heißt jetzt aber keineswegs, dass ich das empfehle.
  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 12: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