AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Code vom Thread in einen Timer umziehen?

Code vom Thread in einen Timer umziehen?

Ein Thema von Jim Carrey · begonnen am 25. Okt 2016 · letzter Beitrag vom 25. Okt 2016
Antwort Antwort
Seite 4 von 6   « Erste     234 56   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.261 Beiträge
 
Delphi 10.4 Sydney
 
#31

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 14:27
Anscheinend bin ich doch nicht der Einzige, der dieses Timer-Geraffel nicht versteht, das beruhigt mich *puh*.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#32

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:06
Wenn ich ein Paket erwarte gehe ich doch auchnicht alle fünf Minuten vor die Tür und gucke, ob der Paketbote vor der Tür steht. Dazu habe ich eine Türklingel (Event, Nachricht), die mir sagt, dass der Paketbote vor der Tür steht.
Aber es kann den den Hauptthread extrem nerven, wenn der Postbote jede Millisekunde an der Tür schellt, nur weil er gerade wieder ein 0,000001% Päckchen hat. Das mag ja ganz ganz nett sein, aber dann ist der Hauptthread doch wieder nur mit dem Postbosten beschäftigt. Daher hat die Lösung: Selbst und in regelmäßigen Zeiten an die Tür zu gehen und dann auf ein mal alle Päckchen rein zu holen, nicht schlecht.
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#33

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:09
Ein Timer ist kein Thread! Ein Timer wird durch Windows Nachrichten ausgelöst (WM_TIMER).
Das ist mir vollkommen klar. Wenn du den Verlauf des Themas gelesen hättest wüstest du auch warum ich Timer und Threads in einen Topf werfe.

Vielen Dank für die ausführliche Antwort.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.261 Beiträge
 
Delphi 10.4 Sydney
 
#34

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:10
Dann sagt man dem Boten eben, dass er nur bei jedem vollen Prozent klingeln soll. Das ist doch keine Raketentechnik.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#35

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:12
Zitat:
Daher hat die Lösung: Selbst und in regelmäßigen Zeiten an die Tür zu gehen und dann auf ein mal alle Päckchen rein zu holen, nicht schlecht.
Genau. Und das macht mein zweiter Thread nebenher immer, wenn die ausgerechneten Prozent der verarbeitung höher sind als die davor UND wenn eine gewisse Zeitspanne zutrifft.
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#36

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:15
Dann sagt man dem Boten eben, dass er nur bei jedem vollen Prozent klingeln soll. Das ist doch keine Raketentechnik.
Nun, je nachdem, was da gerade für ein Paket in Arbeit ist (z.B. ein Download eine Delphi.ISO),
kann es bei einem riesigen Paket recht lange dauern, bis da 1% fertig sind und einer klingelt. Bis dahin sieht und hört man nix.

Geändert von Bambini (25. Okt 2016 um 15:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.261 Beiträge
 
Delphi 10.4 Sydney
 
#37

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:17
Und was genau würde ein Timer daran ändern?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#38

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:20
Und was genau würde ein Timer daran ändern?
Der sagt dir dann eben, dass da gerade erst mal 0,00001% erledigt sind.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.199 Beiträge
 
Delphi 10.4 Sydney
 
#39

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:29
Aber damit schießt Du mit Kanonen auf Spatzen.

Irgendwann kommst Du dazu, dass die Organisation der simplen Zwischennachricht aufwendiger wird als Deine Berechnung selbst.

Du kannst das natürlich so machen, aber es ist m.E. unnötig kompliziert und bietet keinen wirklichen Vorteil.

Hast Du denn irgendwie Hänger oder spürbare Verzögerungen, wenn Du aus dem Arbeitsthread einfach synchronisiert MyForm.ShowProgressValue(Value) aufrufst (ohne zweiten Thread und ohne Timer)?

Wenn ja, müsste man nach der Ursache schauen, aber dann stimmt irgendwo anders sicher etwas nicht.

Wie lange arbeitet der ArbeitsThread eigentlich und wie viele Zwischenschritte werden erledigt (also wie viele Progress-Aktualisierungen gibt es)?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#40

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 15:30
Zitat:
Hast Du denn irgendwie Hänger oder spürbare Verzögerungen, wenn Du aus dem Arbeitsthread einfach synchronisiert MyForm.ShowProgressValue(Value) aufrufst (ohne zweiten Thread und ohne Timer)?
Falls du damit mich meinst: gefühlt war der Prozess langsamer, als es noch 1 Thread war.
Ich habe natürlich immer total übertrieben und direkt eine for-schleife 10.000 Mal dieselbe Arbeit machen lassen. Aber bei meiner Software ist Zahl 10.000 gar nichts.

Ich sehe das halt so... warum muss man dem Benutzer nach jedem Objekt der for-Schleife eine Änderung an der GUI mitteilen, wenn das auch alle 1000ms geht.
Und diese 1000ms kann ich in einem zweiten Thread wesentlich sauberer und besser berechnen als im Arbeiterthread.

Geändert von Jim Carrey (25. Okt 2016 um 15:33 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 18:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf