This VB.NET Subroutine causes a program to suspend operation. It receives 1 integer parameter—the number of milliseconds to pause the program.
No CPU time is used by Sleep. The program simply ceases to operate. For CPU usage, consider SpinWait
, which causes a delay by wasting processor cycles.
Here we invoke the Sleep Sub
on the Thread type. Please note how the Imports System.Threading
line is included at the top of the program.
SpinWait()
. This subroutine results in a lot of CPU usage based on the large integer passed to it.Imports System.Threading Module Module1 Sub Main() ' Create a Stopwatch and sleep for zero milliseconds. Dim stopwatch As Stopwatch = stopwatch.StartNew Thread.Sleep(0) stopwatch.Stop() ' Write the current time. Console.WriteLine(stopwatch.ElapsedMilliseconds) Console.WriteLine(DateTime.Now.ToLongTimeString) ' Start a new Stopwatch. stopwatch = stopwatch.StartNew Thread.Sleep(5000) stopwatch.Stop() Console.WriteLine(stopwatch.ElapsedMilliseconds) Console.WriteLine(DateTime.Now.ToLongTimeString) ' Start a new Stopwatch. stopwatch = stopwatch.StartNew Thread.Sleep(1000) stopwatch.Stop() Console.WriteLine(stopwatch.ElapsedMilliseconds) ' Start a new Stopwatch and use SpinWait. stopwatch = stopwatch.StartNew Thread.SpinWait(1000000000) stopwatch.Stop() Console.WriteLine(stopwatch.ElapsedMilliseconds) End Sub End Module0 9:36:02 AM 4999 9:36:07 AM 999 3128
Namespace
To use Thread.Sleep
or Thread.SpinWait
, import the System.Threading
namespace. These methods are part of Threading, as they are more useful when threads are involved.
The Thread.Sleep
method receives an integer indicating the number of milliseconds you want the program execution to pause.
The Thread.SpinWait
method receives an integer indicating the amount of work to do. This results in 100% CPU usage.