AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Mehrere Threads starten automatisch
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Threads starten automatisch

Ein Thema von SyntaxXx · begonnen am 21. Mär 2011 · letzter Beitrag vom 22. Mär 2011
Antwort Antwort
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

Mehrere Threads starten automatisch

  Alt 21. Mär 2011, 23:02
Guten Abend zusammen, ich habe eine Frage, wo ich mir jetzt schon die ganze Zeit meinen Kopf zerbreche.
Also ich ahbe ein Programm geschrieben, welches ganz stubide immer 1 addiert.

Hier der Code:
Code:
procedure TThread1.Execute;
var i : integer;
    list : TStringList;
begin
list := TStringList.Create;
Form1.ProgressBar1.Min := StrToInt(Form1.Edit1.Text);
Form1.ProgressBar1.Max := StrToInt(Form1.Edit2.Text);
for i := StrToInt(Form1.Edit1.Text) to StrToInt(Form1.Edit2.Text) do
begin
  List.Add(IntToStr(i));
  Form1.ProgressBar1.Position := i;
end;
 List.SaveToFile(Form1.Edit1.Text+'-'+Form1.Edit2.Text+'.txt');
 List.Free;
end;
Das ganze wird in einem Thread gestartet wie man sieht.
Ich möchte das ganze jetzt ein wenig beschleunigen, indem ich das ganze in mehreren Threads starte.

Jetzt ist nur die Frage, wie ich das jetzt am besten realisiere?

Soll ich z.B. jedem Thread einen Bereich zu ordnen, den er generieren soll oder was denkt ihr?
Und wenn ja wie kann ich dass das aufteilen?

Hoffe ihr könnt mir helfen.
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Mehrere Threads starten automatisch

  Alt 21. Mär 2011, 23:13
Guten Abend,

ohne auf Deine Problemstellung einzugehen...

Aus einen Thread greift man nich ohne synchronisation auf Komponenten der GUI zu.

Das kann fürchterlich krachen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Mehrere Threads starten automatisch

  Alt 21. Mär 2011, 23:24
Zitat:
Jeder Zugriff auf Elemente der VCL muss mit der Methode Synchronize synchronisiert
werden.
Tu dir den Gefallen und lies mal in Ruhe das Tutorial von Luckie.

Wenn du es eilig hast etwas selbst auszuprobieren, solltest du zumindest mal folgendes daraus lesen:
  • Vorwort
  • Einführung
  • Grundlagen
  • Das VCL Thread-Objekt

Wenn man da unvorbereitet rumbastelt macht man halt dämliche Fehler:
zB. ich habe bei meinen ersten Experimenten mit Threads die Execute-Methode direkt aufgerufen und mich dann gewundert, das da nichts schneller/anders wird
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Mehrere Threads starten automatisch

  Alt 22. Mär 2011, 06:52
Und jetzt noch kurz zurück zum Thema: Ich persönlich halte es gern so, das die Threads sich aus einem Pool bedienen (bzw. bedient werden).
Das hat, gegenüber der "Bereichs-Lösung", den Vorteil, das ein Thread mal etwas länger arbeiten kann und die anderen Threads dadurch für ihn "einspringen".

//edit: Sorry an alle, denen ich mit der Einleitung (und nur das sollte es sein) zu nahe getreten bin.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)

Geändert von chaosben (22. Mär 2011 um 07:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Mehrere Threads starten automatisch

  Alt 22. Mär 2011, 07:02
Wo sind wir hier vom Thema abgekommen. Aber auch ich halte es für sinnvoll, wenn er erstmal die Grundlagen versteht und beherrscht bevor er sich an Threadpools versucht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:40 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