AGB  ·  Datenschutz  ·  Impressum  







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

anderen Delay als sleep

Ein Thema von Xenonz · begonnen am 31. Okt 2005 · letzter Beitrag vom 1. Nov 2005
Antwort Antwort
Xenonz

Registriert seit: 21. Sep 2005
64 Beiträge
 
#1

anderen Delay als sleep

  Alt 31. Okt 2005, 15:14
Hallo!
Ich habe ein Programm, das öfters bis zu 40 Sekunden wartet. Bisher habe ich dies über den sleep Befehl gemacht. Während dieser Phase ist der Zugriff auf das Programm aber ausgeschlossen weil es anscheinend viel daran rechnet. Gibt es eine andere Möglichkeit lange Delays zu produzieren?

Mfg Xenonz
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: anderen Delay als sleep

  Alt 31. Okt 2005, 15:18
Moin,

probier mal folgendes:

Delphi-Quellcode:
procedure Delay(const Milliseconds: DWord);
var
  FirstTickCount: DWord;
begin
  FirstTickCount := GetTickCount;
  while ((GetTickCount - FirstTickCount) > Milliseconds) do
  begin
    Application.ProcessMessages;
    Sleep(0);
  end;
end;
gruss

[edit=alcaeus]HTML-Entitaet durch korrektes Zeichen ersetzt. Mfg, alcaeus[/edit]
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von LoRd-MuldeR
LoRd-MuldeR

Registriert seit: 9. Okt 2005
Ort: Somewhere over the Slaughterhouse
132 Beiträge
 
Delphi 7 Professional
 
#3

Re: anderen Delay als sleep

  Alt 31. Okt 2005, 15:19
Das programm "rechnet" bei Sleep gar nix, sondern friert schlicht ein. Somit reagiert es in dieser Zeit auch nich auf eingaben. Am Geschicktesten is es wohl mit einem Timer zu arbeiten. Den solltest du standardmäßig in deiner Palette finden, es gibt aber auch viele Komponenten mit einem "verbesserten" Timer (z.B bei JVCL). Natürlich kannst du auch mit Threads arbeiten. Wenn du in einem anderen Thread Sleep aufrufst, wird das "Hauptprogramm" dadurch nich beeinflusst...

@MrKnogge:
Diese Methode verbrennt doch massiv CPU Zeit oder?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: anderen Delay als sleep

  Alt 31. Okt 2005, 15:20
http://www.delphipraxis.net/internal...ighlight=delay
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#5

Re: anderen Delay als sleep

  Alt 1. Nov 2005, 12:49
@MrKnogge: sleep(0) sollte niemals verwendet werden! Aufgrund von Prozessprioritäten kann es sonst weiterhin passieren, dass andere Threads nie ausgeführt werden.

Ausserdem solltest du bei deinem getTickCount gucken ob du dich nicht am Tag 59 (?) befindest (wo der cardinal auf 0 umspringt)
Wer später bremst ist eher tot.
  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 06:21 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