Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Einfaches Thread Beispiel (https://www.delphipraxis.net/112570-einfaches-thread-beispiel.html)

DoktorD 23. Apr 2008 15:33


Einfaches Thread Beispiel
 
Servus.

Ich bin hier im Forum auf der suche nach einen einfachen Beispiel für Threads, habe auch leider nichts gefunden.
Ich selber habe noch nie was mit Threads gemacht, denke aber, das ich jetzt sowas in der richtung brauchen werde (Application.ProcessMessages schickt nicht mehr)

Ein Teil meines Programms (eine Funktion ) friert bei jeder ausführung den rest ein und man kann für ca. 2 Sekunden nichts anderes mehr machen

Ich stelle mir den Thread so änlich vor wie:
Delphi-Quellcode:
Starte Thread

Hier meine Funktion

Stoppe Thread
Hat jemand zufällig ein einfaches Beispiel in dieser Richtung? Wäre euch 100000000000Mal Dankbar!!!!

everdream 23. Apr 2008 15:48

Re: Einfaches Thread Beispiel
 
TThread sollte dir helfen: kleine Erklärung mit Beispiel

sirius 23. Apr 2008 15:57

Re: Einfaches Thread Beispiel
 
Für Threads kann man schwer eine allgemeine Lösung posten.

Mache dir zuerst Gedanken über die Schnittstellen zum MainThread (oder noch weitere Threads wenn vorhanden und notwendig).
Also:
- welche Eingabeparameter
- welche Ausgabeparameter
- gibt es zwischendurch Variablen, die ausgetauscht werden müssen (wenn es geht vermeiden)

DoktorD 23. Apr 2008 20:21

Re: Einfaches Thread Beispiel
 
Zitat:

Zitat von everdream
TThread sollte dir helfen: kleine Erklärung mit Beispiel

Danke für das Beispiel, werde es erstmal damit probieren

DelphiManiac 29. Apr 2008 08:41

Re: Einfaches Thread Beispiel
 
Hier mal ein kleiner Auschnitt aus dem oben genannten Beispiel, wie man es nicht machen sollte:

Delphi-Quellcode:
procedure TMyThread.Execute;
var
T:Integer;
begin
t:=FTimeToWork;
Form1.Memo1.Lines.Add('Begin execution'); // AAARGH nie ohne Synchronisierung auf die GUI zugreifen!!! (Siehe Forum)
while not Terminated and (t>0) do
begin
Form1.Memo1.Lines.Add(format('Remaining %5.2f%%',[t/FTimeToWork*100]));
Sleep(500);
dec(t,500);

Luckie 29. Apr 2008 08:56

Re: Einfaches Thread Beispiel
 
Guck mal hier: http://delphitutorials.michael-puff.de

Regan 29. Apr 2008 09:24

Re: Einfaches Thread Beispiel
 
Zitat:

Zitat von Luckie

Kann ich dir auch nur empfehlen. Ich habe mich aber erst ab Seite 53 mit dem VCL-Threadobjekt beschäftigt. Das ist einfacher.

DP-Maintenance 30. Apr 2008 09:54

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:38 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