Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi einfaches Multithread Beispiel. (https://www.delphipraxis.net/203981-delphi-einfaches-multithread-beispiel.html)

Jumpy 18. Apr 2020 18:02

AW: Delphi einfaches Multithread Beispiel.
 
Zitat:

Zitat von DieDolly (Beitrag 1462418)
Das neue Beispiel ist genau so schlimm wie das erste.

Ich find so Aussagen immer doof, denn so lernt der TE nix und ich, der ich über den Thread (no pun intended) stolpere, lerne auch nix. Es geht ja scheinbar nur um ein Minimal-Beispiel für mehrere Threads mit Zugriff auf die GUI, das so auch in alten Delphis funktioniert ohne die ganzen neuen Threads-/Paralles-Libraries die es da in und für neue Delphis gibt.

Ich vermute nur warum das Beispiel nicht gut ist, deshalb würde ich mir von den Wissenden konstruktive Aussagen wünschen ala "das ist nicht gut weil", "besser wäre so", "schau mal dieses Beispiel", "diesen Link". Idealerweise dann auf dem Komplexitäts-Niveau auf dem das ursprüngliche Beispiel war, kein Overkill.

Ich hab z.B. nur wenig Ahnung von Threads, sie nur selten benutzt und wenn dann so minimal wie hier. Darum bin ich auf einmal von so Aussagen "Synchronize benutzen ist böse" überrascht. Muss ich das jetzt mit Goto, With und ProcessMessages auf den Dachboden verbannen? Wieso?

p80286 18. Apr 2020 18:49

AW: Delphi einfaches Multithread Beispiel.
 
Zitat:

Zitat von Jumpy (Beitrag 1462427)
Darum bin ich auf einmal von so Aussagen "Synchronize benutzen ist böse" überrascht. Muss ich das jetzt mit Goto, With und ProcessMessages auf den Dachboden verbannen? Wieso?

Wer hat denn gesagt, daß es böse ist? Es ist nur kontraproduktiv. Damit hast Du die Vorteile von 2 Threads über bord geworfen, weil der Mainthread und der Produktivthread voneinnder abhängig sind. danit fällst Du auf das altbekannte
Delphi-Quellcode:
for i:=0 to x do
begin
  machwas;
  if i and $f =0 then
  begin
    label1.caption:=inttostr(i);
    processMessages;
  end;
end;
zurück.

Da ist der Vorteil eines Threads auf ein Minimum geschrumpft.

Man kann damit allerdings für Demonstrationszwecke die ganze Chose einbremsen aber das sollte dann auch explizit gesagt werden.

Gruß
K-H

Jumpy 19. Apr 2020 12:16

AW: Delphi einfaches Multithread Beispiel.
 
Ich verstehe glaub ich was du meinst. Der Thread hält an, während er die GUI über synchronize udated? Und über Postmessage ist das ganze dann mehr entkoppelt? Der Thread setzt sie Message ab und macht weiter. Die GUI fängt bei Gelegenheit die Message ab und verarbeitet sie? Hab ich das so richtig verstanden?

Diese Messages sind doch ein Windows-Ding, oder? Wie macht man das anderswo? Kommen jetzt doch schon die Libraries ins Spiel, wenn man das sauber (aber einfach) machen will?

Es muss ja nicht immer das updaten der GUI sein, ein Thread im Sinne Worker-Thread kann ja seine Ergebnisse mitteilen wollen und sagen, dass er auf neue Aufgaben wartet.

DieDolly 19. Apr 2020 12:17

AW: Delphi einfaches Multithread Beispiel.
 
Zitat:

Und über Postmessage ist das ganze dann mehr entkoppelt? Der Thread setzt sie Message ab und macht weiter. Die GUI fängt bei Gelegenheit die Message ab und verarbeitet sie? Hab ich das so richtig verstanden?
Bei PostMessage ist es so wie du sagst. Bei SendMessage wird gewartet, bist die Nachricht verarbeitet wurde.

p80286 19. Apr 2020 22:19

AW: Delphi einfaches Multithread Beispiel.
 
Zitat:

Zitat von Jumpy (Beitrag 1462447)
Es muss ja nicht immer das updaten der GUI sein, ein Thread im Sinne Worker-Thread kann ja seine Ergebnisse mitteilen wollen und sagen, dass er auf neue Aufgaben wartet.

Mmm gute Frage. Nach meinem Verständnis ist der MainThread der "MasterofDesaster" der sich auch gleichzeitig um die GUI kümmert. Eine empfangene Message muß ja nicht zwangsläufig eine optische Ausgabe ansteuern.

Aber warum sollte ein Thread mehr als eine Aufgabe ausführen. Mir ist das zu komplex. Wenn Dich das interessiert such mal nach ThreadPool. Und das Tut von Michael ist auch recht hilfreich.

Gruß
K-H

Jumpy 20. Apr 2020 11:27

AW: Delphi einfaches Multithread Beispiel.
 
Ich frag da auch nur aus Neugier und gucke gern in diesbezügliche Threads, damit ich schon mal ungefähr was weiß wochach ich googlen muss, wenn ich mal ein konkretes Problem habe.

Scheinbar plant Frank ja da auch was für die Code Rage.

p80286 20. Apr 2020 11:53

AW: Delphi einfaches Multithread Beispiel.
 
Zitat:

Zitat von Jumpy (Beitrag 1462500)
Ich frag da auch nur aus Neugier und gucke gern in diesbezügliche Threads, damit ich schon mal ungefähr was weiß wochach ich googlen muss, wenn ich mal ein konkretes Problem habe.

Scheinbar plant Frank ja da auch was für die Code Rage.

Danke für den Hinweis!

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Seite 4 von 4   « Erste     234   

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