AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Fragen zu Threads: Prozedur als Thread ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Fragen zu Threads: Prozedur als Thread ausführen

Ein Thema von Whistler · begonnen am 26. Aug 2004 · letzter Beitrag vom 18. Sep 2004
Antwort Antwort
Seite 1 von 3  1 23      
Whistler

Registriert seit: 2. Mär 2004
98 Beiträge
 
Delphi 2006 Professional
 
#1

Fragen zu Threads: Prozedur als Thread ausführen

  Alt 26. Aug 2004, 14:28
Hallo,

ich würde gerne eine Prozedur als Thread ausführen, damit die Anwendung selbst weiterhin reagiert.
Habe mir bereits das Tutorial von Luckie angeschaut, jedoch hilft es mir auch nicht viel weiter.
mfg

Whistler
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 26. Aug 2004, 15:05
Hallo,

deine Frage ist etwas vage: "Ich habe ein Problem, kann mir jemand helfen" spiegelt ungefähr den Inhalt deines Problems... Also was genau willst du denn in dem Thread machen?

Gruß,
  Mit Zitat antworten Zitat
Whistler

Registriert seit: 2. Mär 2004
98 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 26. Aug 2004, 15:12
Hallo,

dachte der Titel des Themas würde das klar machen:
Wenn der User auf einen Button klickt, wird eine Prozedur ausgeführt. Diese Prozedur benötigt viel Zeit. Während des Vorgangs, reagiert aber die Hauptanwendung nicht mehr. Daher will ich diese Prozedur in einem extra Thread ausführen.

Quasi:
User klickt Button -> Thread "DoProcess" erstellen -> Thread Auzführen (hier wird die eigentliche Prozedur ausgeführt) -> Wenn Thread Fertig -> Thread Ende.
mfg

Whistler
  Mit Zitat antworten Zitat
weißer Zwerg
(Gast)

n/a Beiträge
 
#4

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 26. Aug 2004, 15:19
Hallo,

zum Thema Threads einfach mal bei Threads Tutorial vorbeischauen. Für den Anfang hat es mit sehr geholfen.

MfG wZ
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#5

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 26. Aug 2004, 15:28
wo liegt den das problem? weil eigentlich zielt luckies tut genau darauf ab! wo kommst du nicht weiter?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 26. Aug 2004, 15:28
Wenn du eine konkrete Frage hast zu meinem Tutorial, was du nicht dabei verstanden hast, dann solltest du die auch stellen. Mit einem " jedoch hilft es mir auch nicht viel weiter" kann dir hier auch niemand weiterhelfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 26. Aug 2004, 16:10
hi whissi,

versuchs mal so:

Delphi-Quellcode:
procedure blub;
var
  i: integer;
begin
  for i := 0 to 1000000 do
    Form1.ListBox1.Items.Add(IntToStr(i));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  id: cardinal;
begin
  createthread(nil, 0, @blub, nil, 0, id);
end;
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 26. Aug 2004, 16:19
Und genau so bitte nicht!

Erstmal sollte man niemals direkt MSDN-Library durchsuchenCreateThread aufrufen.
Zitat von Delphi Hilfe:
BeginThread encapsulates the Win32 CreateThread API call, but unlike CreateThread, it sets the global IsMultiThread variable, thereby making the heap thread-safe.
Dann entspricht die Thread-Routine nicht der Vorgabe, wie eine Thread-Funktion auszusehen hat. Sollte zwar auch gehen, würde ich aber nicht empfehlen. Die sieht nämlich so aus:
Zitat von Delphi Hiilfe:
type TThreadFunc = function(Parameter: Pointer): Integer;
Dann wird ohne ein Schutzblock auf globale, sichtbare Ressourcen der VCL zugegriffen:
Form1.ListBox1.Items.Add(IntToStr(i)); Sollte zwar auch gut gehen, kann aber auch böse ins Auge gegehen. Stichwort an dieser Stelle MSDN-Library durchsuchenCrtitcalSection oder für die Delphi Hilfe: Delphi-Referenz durchsuchenTCriticalSection.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Whistler

Registriert seit: 2. Mär 2004
98 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 17. Sep 2004, 19:21
Ich blicke es nicht :/

Das PDF als solches ist verständlich. Jedoch hilft es mir nicht weiter. Ich weiß eben nicht, wie ich nun hingehe und einen Thread aufrufe, der eine Funktion/Prozedur abarbeitet.

Ich will eigentlich nur folgendes:
Durch eine Aktion auf dem Hauptformular (z.B. Button-Click), soll eine Prozedur in einem eigenen Thread ausgeführt werden (nur als Info: die auszuführende Prozedur erstellt eine HASH-Summe) und wenn die Prozedur durchgelaufen ist (=Hashsumme erstellt wurde), soll sich der Thread wieder beenden und das Hauptform wieder aktiv werden.
mfg

Whistler
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#10

Re: Fragen zu Threads: Prozedur als Thread ausführen

  Alt 17. Sep 2004, 19:26
wenn du die hauptform derweil deaktivierst, kannst du dir den thread auch sparen, denn dann ist er total überflüssig!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 19:47 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