AGB  ·  Datenschutz  ·  Impressum  







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

Zugriff auf TProgressbar.Position aus TThread.Queue

Ein Thema von TurboMagic · begonnen am 19. Sep 2022 · letzter Beitrag vom 21. Sep 2022
Antwort Antwort
Seite 2 von 3     12 3      
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#11

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 20. Sep 2022, 21:50
Komisch, ich habe jetzt das gewünschte Testprogramm geschrieben, siehe Anhang.
Nur: es knallt da nicht beim Zugriff auf den Progressbar, das Label wird aber
nie aktualisiert

Bin verwirrt.

Grüße

TurboMagic
Angehängte Dateien
Dateityp: zip QueueTest.zip (90,7 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 20. Sep 2022, 21:53
Nur: es knallt da nicht beim Zugriff auf den Progressbar, das Label wird aber
nie aktualisiert
Da du im Kontext des Hauptthreads (in Queue) ein Sleep drin hast, blockierst du den Hauptthread.

Ja, bei mir gibt es auch keinen Fehler. Da muss etwas anderes los sein. Kannst du vielleicht einen Screenshot von Delphi machen, wenn der Fehler im echten Projekt auftritt? Damit man den Stacktrace usw. sieht?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#13

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 20. Sep 2022, 22:18
Das mit dem Sleep: Duh! War aber nur im Testprogramm so.
Anbei ein Screenshot und siehe da: kein Stsck Trace!
Crash ist in Zeile 190.
Miniaturansicht angehängter Grafiken
progressbar.png  

Geändert von TurboMagic (20. Sep 2022 um 22:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#14

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 20. Sep 2022, 22:58
In deinem ersten Beispiel hattest du das Sleep direkt hinter dem ReportProgress. Damit bekommt man nicht nur einen flüssigen Ablauf hin, sondern das Label wird auch aktualisiert. Fehlt das Sleep, schreibt der Thread die Synchronize-Queue voll und der Hauptthread hat keine Zeit das Label zu aktualisieren. Am Ende steht es dann auf 200.

Wenn es an diesem Beispiel nicht auftritt, dann ist das Beispiel noch nicht genau genug an das Realprogramm angepasst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 20. Sep 2022, 23:05
Das mit dem Sleep: Duh! War aber nur im Testprogramm so.
Anbei ein Screenshot und siehe da: kein Stsck Trace!
Dafür musst du noch auf Anhalten drücken.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 20. Sep 2022, 23:42
Und eventuell noch einmal F7 ... direkt nach einer Exception bekommt Delphi das manchmal/oftmals nicht sofort hin, während der Stack noch zwischen zwei Codezeilen hängt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#17

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 21. Sep 2022, 20:43
Ok, hier ein neuer Screenshot, diesmal mit Callstack.
Miniaturansicht angehängter Grafiken
progressbar.png  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 21. Sep 2022, 21:14
mach da mal ein Try-Except drumrum und kopieren den Code "nochmal" ins Except ... dann kannst du nach dem Knall nochmal manuell reindebuggen (F7) und überall vorher sehen, was die Variablen sagen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#19

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 21. Sep 2022, 21:21
Scheint da alles nil zu sein.
Welche Variable wäre da interessant?
Siehe Anhang.
Miniaturansicht angehängter Grafiken
progressbar.png  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zugriff auf TProgressbar.Position aus TThread.Queue

  Alt 21. Sep 2022, 21:24
Du bist nicht zufällig grade dabei die Form/Anwendung zu schließen, bzw. es wurde kurz vorher gemacht?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:05 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