Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

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

AW: IdHttp.Get & Geschwindigkeit

  Alt 18. Mai 2012, 14:26
Sind aber über 2000 Zeilen Code, in die du dich sicherlich jetzt nicht einarbeiten möchtest, zudem lässt sich auch kein konreter Fehler reproduzieren, sondern es gibt immer unterschiedliche Fehler (Access Violation, Call to an OS-Function Failed, Stillstand ohne Fehlermeldung) an unterschiedlichen Stellen ...
Die Fehler hören sich danach an als ob du auf schon nicht mehr existierende Objekte zugreifst (z.B. auf das Threadobjekt nach dessen Freigabe) oder aus dem Thread heraus unsynchronisiert auf Daten außerhalb des Threads.

Viel Quelltext wäre immer noch besser als gar keiner und da muss man sich auch nicht einarbeiten, sondern es vermutlich nur mal überfliegen. Aber davon abgesehen wirst du doch wohl die relevanten Stellen daraus entnehmen können, oder? Also sprich Erzeugung des Threads, Code im Thread zum Herunterladen an sich, ...
Die Verarbeitung nach dem Herunterladen wäre z.B. uninteressant, wenn die Verzögerung schon vorher auftritt.

Um das Pferd mal von hinten aufzuzäumen: Gibt es irgendeine Möglichkeit die Events der Form an sich auszulagern ? Also die Berechnungen so laufen zu lassen wie bis jetzt, aber klicken auf Buttons etc in nem extra Thread zu behandeln ? Wäre sicherlich einfacher ...
Erst in Windows RT. Ansonsten brauchst du explizit Threads. Solange das sauber umgesetzt wird, muss am Code auch nicht viel geändert werden.

Es sei denn du hast das nicht ordentlich gekapselt und greifst auf GUI-Elemente in deinen Download-Funktionen zu. Das wiederum macht weder ohne noch mit Threads Sinn. Und im Thread knallt es dann, wenn du unsynchronisiert zugreifst.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat