![]() |
Mehrere Threads starten automatisch
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:
Das ganze wird in einem Thread gestartet wie man sieht.
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; 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. |
AW: Mehrere Threads starten automatisch
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 |
AW: Mehrere Threads starten automatisch
Zitat:
![]() Wenn du es eilig hast etwas selbst auszuprobieren, solltest du zumindest mal folgendes daraus lesen:
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 :mrgreen: |
AW: Mehrere Threads starten automatisch
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. :) |
AW: Mehrere Threads starten automatisch
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.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz