Last modified April 20, 2026
The FreeBasic Sleep keyword pauses program execution for a
specified number of milliseconds. It is useful for creating delays,
controlling timing, and reducing CPU usage in loops.
In FreeBasic, Sleep is a built-in procedure that suspends
program execution. It takes one parameter - the number of milliseconds
to pause.
The Sleep function is platform-independent and provides a
simple way to add delays. It is commonly used in games, animations, and
user interfaces to control timing.
This basic example demonstrates the simplest usage of the Sleep keyword.
Print "Program started" Sleep 2000 ' Pause for 2 seconds Print "Program resumed after 2 seconds"
Here we print a message, pause execution for 2000 milliseconds (2 seconds), then print another message. The Sleep call blocks all program execution during the pause.
Sleep is often used in loops to control the speed of iteration.
For i As Integer = 1 To 5 Print "Count: "; i Sleep 1000 ' Pause for 1 second between counts Next
This example counts from 1 to 5 with a 1-second delay between each number. Without Sleep, the loop would execute too quickly to see each count.
We can use Sleep to build a basic countdown timer.
Dim seconds As Integer = 10 While seconds > 0 Print "Time remaining: "; seconds; " seconds" Sleep 1000 seconds -= 1 Wend Print "Time's up!"
This creates a 10-second countdown timer that updates every second. The Sleep ensures each iteration takes exactly 1 second, making the timer accurate.
Sleep can help create simple text animations by controlling frame rate.
Dim frames(3) As String = {"-", "\", "|", "/"}
For i As Integer = 1 To 20
Print "Loading "; frames(i Mod 4); " "; i * 5; "%"
Sleep 150 ' 150ms delay creates smooth animation
Cls ' Clear screen for next frame
Next
This example shows a spinning loader animation with percentage progress. The Sleep controls animation speed. Without it, the animation would be too fast to see.
Sleep can provide a pause before requesting user input.
Print "Important message incoming..." Sleep 3000 Print "The system will reboot in 5 minutes!" Print "Press any key to cancel..." Sleep
This shows a message after a 3-second delay. The second Sleep with no parameters waits indefinitely for a keypress. This creates a pause for user interaction.
Sleep can reduce CPU usage in polling loops.
Dim done As Boolean = False While Not done ' Check for some condition If GetKeyState(27) Then ' ESC key pressed done = True End If Sleep 100 ' Reduce CPU usage by pausing between checks Wend Print "Loop exited"
This loop checks for the ESC key but includes a 100ms Sleep to prevent CPU overuse. Without Sleep, the loop would run as fast as possible, consuming significant CPU resources.
For more precise timing, Sleep can be combined with timers.
Dim startTime As Double = Timer Dim targetDelay As Integer = 2000 ' 2 seconds While (Timer - startTime) * 1000 < targetDelay ' Do some work here Print "Working..." Sleep 100 ' Small sleep to reduce CPU usage Wend Print "Precise 2 second delay completed"
This example shows how to create more precise timing than Sleep alone provides. The loop runs with small Sleeps while checking the actual elapsed time using the Timer function.
This tutorial covered the FreeBasic Sleep keyword with practical
examples showing its usage in different scenarios.
My name is Jan Bodnar, and I am a passionate programmer with extensive programming experience. I have been writing programming articles since 2007. To date, I have authored over 1,400 articles and 8 e-books. I possess more than ten years of experience in teaching programming.
List all FreeBasic Tutorials.