AGB  ·  Datenschutz  ·  Impressum  







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

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 6 von 6   « Erste     456   
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#51

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 20:24
So würde ich es machen (XE3)...

Mit Events ist es noch besser strukturiert als mit Übergabe des Formulars.
Nachrichten verschicken ginge natürlich auch, aber das habe ich schon Jahre nicht mehr gemacht.
Angehängte Dateien
Dateityp: zip ThreadProgressTest.zip (3,06 MB, 5x aufgerufen)
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
 
#52

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 20:27
Bedrohung blockiert
Objekt: delphipraxis.net/attachments/....
Infektion:
Win32:Evo-gen [Susp]



Sieht aber interessant aus. Wusste ich gar nicht, dass das überhaupt so möglich ist.
Edit: da steht zwar "0x aufgerufen" aber ich habs runtergeladen und angeguckt.

Geändert von Jim Carrey (25. Okt 2016 um 20:31 Uhr)
  Mit Zitat antworten Zitat
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#53

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 21:55
Ich sagte doch das war einfach nur dahin geklatsch.
Manches geht aber auch dahingeklatsch nicht. Und manchmal sind die einfacheren Lösungen die besseren.

Zum Thema Delay und Thread, guck mal hier: Delay von negaH
Da steht was von wegen mit eigener Messagequeue. Du hast aber kein Thread mit Messagequeue. Ich hab noch nie einen Thread mit eigener Messagequeue unter den Fingern gehabt bzw. selbst gebaut. Bin aber, bis mich jemand vom gegenteil überzeugt, der Meinung das so ein Thread seinen eigenen Nachrichtenverarbeitungscode haben sollte.

Edit: Fehlendes [/QUOTE] eingefühgt.
Mit freundlichen Grüßen, einbeliebigername.
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#54

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 21:58
Ist zwar offTopic aber... in Threads dann doch besser ein simples Sleep() verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#55

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 22:17
Ich hatte noch das FreeOnTerminate vergessen, so dass der Thread nach Beendigung nicht freigegeben wurde:

Delphi-Quellcode:
constructor TArbeiterThread.Create(aMinValue, aMaxValue: Integer; aProgressInitEvent: TProgressInitEvent;
  aProgressStepEvent: TProgressStepEvent; aProgressCloseEvent: TProgressCloseEvent);
begin
  fMinValue := aMinValue;
  fMaxValue := aMaxValue;
  fProgressInitEvent := aProgressInitEvent;
  fProgressStepEvent := aProgressStepEvent;
  fProgressCloseEvent := aProgressCloseEvent;

  FreeOnTerminate := True; // <------------

  inherited Create(False);
end;

Ja, ein Sleep(1 oder höher) im Thread gibt anderen Prozessen auch mal die Möglichkeit, etwas auszuführen.
Sleep(0) prinzipiell auch, aber ich hatte dennoch schon den Effekt, dass die CPU mit 100% weiter lief.
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
 
#56

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 22:28
Ich habe irgendwann angefangen negaH's Version zu verwenden, weil ich zu oft Fehler gemacht habe.
Mein letzter war eine while-Schleife im OnCreate etwa wie...
while True do Caption := IntToStr(Random(1234)); Das hat mir den Rechner fast zerlegt. Seitdem benutzte ich immer die Version mit ProcessMessages als Sicherung.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


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 00:06 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