SDL Delay: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (<br>'s ...)
K (Der Ausdruck ''<pascal>(.*?)</pascal>'' wurde ersetzt mit ''<source lang="pascal">$1</source>''.)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 4: Zeile 4:
 
'''SDL_Delay''' - Der aktuelle Thread wird für eine bestimmte Zeit angehalten, bevor die Verarbeitung fortgesetzt wird.
 
'''SDL_Delay''' - Der aktuelle Thread wird für eine bestimmte Zeit angehalten, bevor die Verarbeitung fortgesetzt wird.
  
<br>
+
 
 +
 
  
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  procedure '''SDL_Delay'''(''msec'': UInt32);
 
  procedure '''SDL_Delay'''(''msec'': UInt32);
  
<br>
+
 
 +
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 18: Zeile 20:
 
|}
 
|}
  
<br>
+
 
 +
 
  
 
== Beschreibung ==
 
== Beschreibung ==
 
'''SDL_Delay''' pausiert den aktuellen Thread für die Anzahl der Milisekunden, die als Parameter übergeben werden soll. Diese Funktion sollte nicht zur Syncronisation von Threads verwendet werden, da nicht garantiert wird, dass die Anzahl der Milisekunden wirklich gewartet wird. So wird auf einigen Plattformen mindestens 10 Milisekunden gewartet, selbst wenn nur eine angegeben wurde. '''SDL_Delay''' ist vor allem immer dann sinnvoll, wenn man einem Thread ein wenig "Luft" verschaffen möchte, um z.B. einem anderen Thread einen Zugriff auf ein [[SDL_CreateMutex|Mutex]] zu erlauben. Einige Programmierer schwören zudem darauf, dass das bewußte Abbremsen in der Renderloop bei Notebooks die Laufzeit der Batterie erheblich verlängert, da die Grafikkarte nicht dazu gezwungen wird soviele Bilder wie möglich zu berechnen.
 
'''SDL_Delay''' pausiert den aktuellen Thread für die Anzahl der Milisekunden, die als Parameter übergeben werden soll. Diese Funktion sollte nicht zur Syncronisation von Threads verwendet werden, da nicht garantiert wird, dass die Anzahl der Milisekunden wirklich gewartet wird. So wird auf einigen Plattformen mindestens 10 Milisekunden gewartet, selbst wenn nur eine angegeben wurde. '''SDL_Delay''' ist vor allem immer dann sinnvoll, wenn man einem Thread ein wenig "Luft" verschaffen möchte, um z.B. einem anderen Thread einen Zugriff auf ein [[SDL_CreateMutex|Mutex]] zu erlauben. Einige Programmierer schwören zudem darauf, dass das bewußte Abbremsen in der Renderloop bei Notebooks die Laufzeit der Batterie erheblich verlängert, da die Grafikkarte nicht dazu gezwungen wird soviele Bilder wie möglich zu berechnen.
  
<br>
+
 
 +
 
  
 
== Beispiel ==
 
== Beispiel ==
  
<pascal>uses SDL;
+
<source lang="pascal">uses SDL;
 
begin
 
begin
 
   WriteLn('Start');
 
   WriteLn('Start');
 
   SDL_Delay(5000); // wait for 5 seconds
 
   SDL_Delay(5000); // wait for 5 seconds
 
   WriteLn('Finish');
 
   WriteLn('Finish');
end.</pascal>
+
end.</source>
 +
 
 +
 
  
<br>
 
  
 
== Siehe auch ==
 
== Siehe auch ==

Aktuelle Version vom 10. März 2009, 19:08 Uhr

SDL_Delay

Name

SDL_Delay - Der aktuelle Thread wird für eine bestimmte Zeit angehalten, bevor die Verarbeitung fortgesetzt wird.



Delphi-Spezifikation

procedure SDL_Delay(msec: UInt32);



Parameter

msec Anzahl der Milisekunden in der der Thread pausiert werden soll



Beschreibung

SDL_Delay pausiert den aktuellen Thread für die Anzahl der Milisekunden, die als Parameter übergeben werden soll. Diese Funktion sollte nicht zur Syncronisation von Threads verwendet werden, da nicht garantiert wird, dass die Anzahl der Milisekunden wirklich gewartet wird. So wird auf einigen Plattformen mindestens 10 Milisekunden gewartet, selbst wenn nur eine angegeben wurde. SDL_Delay ist vor allem immer dann sinnvoll, wenn man einem Thread ein wenig "Luft" verschaffen möchte, um z.B. einem anderen Thread einen Zugriff auf ein Mutex zu erlauben. Einige Programmierer schwören zudem darauf, dass das bewußte Abbremsen in der Renderloop bei Notebooks die Laufzeit der Batterie erheblich verlängert, da die Grafikkarte nicht dazu gezwungen wird soviele Bilder wie möglich zu berechnen.



Beispiel

uses SDL;
begin
  WriteLn('Start');
  SDL_Delay(5000); // wait for 5 seconds
  WriteLn('Finish');
end.



Siehe auch

SDL_AddTimer