AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread anhalten / pausieren

Ein Thema von schismatic1 · begonnen am 26. Mai 2009 · letzter Beitrag vom 26. Mai 2009
Antwort Antwort
schismatic1

Registriert seit: 24. Mai 2009
28 Beiträge
 
#1

Thread anhalten / pausieren

  Alt 26. Mai 2009, 13:50
Mahlzeit

Ich bastel aktuell an einem simplen Downloadmanager der für meine Bedürfnisse zurechtgeschnitten ist. Mitlerweile funktioniert der auch nur möchte ich ihn erweitern indem der Download in einem eigenen Thread läuft.

Da ich mich damit noch nicht auskenne habe ich mich ersteinmal durch dutzende Forenbeiträge und Tuts gewälzt und nun ersteinmal ein Tetsprogramm gebaut welches in einem Thread eine Schleife startet (spätere Download soll auch wiederholt werden) und den aktuellen Schleifendurchlauf wieder zurücksendet.

Zu meinem Glück fehlt nun nur noch die Möglichkeit die Schleife zu pausieren und wieder aufzuwecken.

Dazu habe ich folgendes versucht:

Delphi-Quellcode:
procedure TForm3.PauseClick(Sender: TObject);
begin
  try
    if Schleife.Resume then
      Schleife.Suspended
    else
      Schleife.Resume
  except
  end;
end;
Der Compiler schreit danach das 'Schleife.Resume' vom Typ boolean sein muss - eine Abänderung auf ' if (if Schleife.Resume = true) then ' funktioniert auch nicht wegen "Inkompatible Typen".


PS: Schleife ist eine Klasse vom Typ TSchleife (also meine Threadklasse heißt TSchleife)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: Thread anhalten / pausieren

  Alt 26. Mai 2009, 13:55
Delphi-Quellcode:
procedure TForm3.PauseClick(Sender: TObject);
begin
  try
    if Schleife.Suspended then
      Schleife.Resume
    else
      Schleife.Suspend;
  except
    //was soll denn das hier?
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Thread anhalten / pausieren

  Alt 26. Mai 2009, 13:57
Überlege dir einmal was du machst...
Resume ist eine Prozedur, die den Thread fortsetzt, die gibt aber nix zurück. Suspended ist eine Eigenschaft, die angibt, ob der Thread gerade pausiert ist...

Zudem brauchst du an der Stelle kein try..except, es sei denn deine Threadvariable kann nil sein und das solltest du besser richtig abfangen.

Wie es richtig ist, hat DeddyH ja schon geschrieben wie ich sehe, ich hoffe du verstehst auch was da anderes passiert und was bei dir falsch war...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
schismatic1

Registriert seit: 24. Mai 2009
28 Beiträge
 
#4

Re: Thread anhalten / pausieren

  Alt 26. Mai 2009, 14:00
Okay danke an Euch beiden - Für Richtigstellung und Erklärung

EDIT: zu der exception - Wenn ich die rauslasse und auf meinen Pauseknopf drücke sobald die Schleife durch ist kommt eine Fehlermeldung "Thread Fehler: Das Handle ist ungültig (6)" - ich denke mal das liegt daran dass der Thread nicht mehr exisiert nachdem er fertig gezählt hat.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Thread anhalten / pausieren

  Alt 26. Mai 2009, 14:02
Es ist aber ungünstig den Thread von außen mit Suspend anzuhalten. Gib dem Thread lieber eine Mitteilung, dass er sich selber anhalten soll.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 03:09 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