AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Prozedur nach bestimmter Zeit abbrechen

Ein Thema von Gentleman · begonnen am 28. Dez 2008 · letzter Beitrag vom 30. Dez 2008
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

Re: Prozedur nach bestimmter Zeit abbrechen

  Alt 30. Dez 2008, 00:16
Zitat von rollstuhlfahrer:
HI,

lager doch die Prozedur in einen weiteren Thread aus, den du startest. Dann wartest du entweder auf Fertig oder auf 10 sekunden. Falls die 10 sekunden erreicht sind, beendest du den Thread und weg ist er. Bei Fertig machst du einfach weiter. So muss man sich wenigstens keine Gedanken über Abbruchbedinguingen machen und die Prozedur läuft mit geschätzten 1-2 Durchgängen pro Sekunde schneller.

Bernhard
Das löst das Problem eigentlich nicht, wenn man es sauber haben möchte! Der Thread hilft mir ja nur, damit die Ausführung nicht mein Fenster blockiert und die gesamte CPU-Last (ob benötigt oder nicht) verbraten wird. Die Schleifen "sollten" auch in einem Thread sauber beendet werden.

So wäre es von der Programmierung sauber (egal ob in Thread oder nicht):
Delphi-Quellcode:
procedure TutWas;
var
  i, j : integer;
  start : LongWord;
begin
  i := 0;
  j := 0;
  start := GetTickCount;
  while
    ( i <= 100 ) and
    ( GetTickCount - start < 10000 )
  do
    begin
      while
        ( j <= 100 ) and
        ( GetTickCount - start < 10000 )
      do
        begin
          // hier kann er was tun
          inc( j );
        end;
      inc( i );
    end;
end;
cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Prozedur nach bestimmter Zeit abbrechen

  Alt 30. Dez 2008, 07:20
[quote="Sir Rufo"]
Zitat von rollstuhlfahrer:
Falls die 10 sekunden erreicht sind, beendest du den Thread und weg ist er.
Wie geht das genau?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#13

Re: Prozedur nach bestimmter Zeit abbrechen

  Alt 30. Dez 2008, 18:28
HI

mit dem Beenden hab ich ein bissel suchen müssen.
Also, es geht mit Hilfe von MSDN-Library durchsuchenTerminateThread.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: Prozedur nach bestimmter Zeit abbrechen

  Alt 30. Dez 2008, 18:49
Aber die Warnungen hast Du Dir schon durchgelesen, ja? Vergiss es. Einen Thread soll man einfach nicht so einfach 'abschießen'. Ein Thread muss schon selbst dafür sorgen, daß er terminiert.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:10 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