How to sleep for few milliseconds in swift 2.2?

Solution 1:

usleep() takes millionths of a second

usleep(1000000) //will sleep for 1 second
usleep(2000) //will sleep for .002 seconds

OR

 let ms = 1000
 usleep(useconds_t(2 * ms)) //will sleep for 2 milliseconds (.002 seconds)

OR

let second: Double = 1000000
usleep(useconds_t(0.002 * second)) //will sleep for 2 milliseconds (.002 seconds)

Solution 2:

I think more elegant than usleep solution in current swift syntax is: Thread.sleep(forTimeInterval: 0.002)

Solution 3:

use func usleep(_: useconds_t) -> Int32 (import Darwin or Foundation ...)

IMPORTANT: usleep() takes millionths of a second, so usleep(1000000) will sleep for 1 sec

Solution 4:

If you really need to sleep, try usleepas suggested in @user3441734's answer.

However, you may wish to consider whether sleep is the best option: it is like a pause button, and the app will be frozen and unresponsive while it is running.

You may wish to use NSTimer.

 //Declare the timer
 var timer = NSTimer.scheduledTimerWithTimeInterval(0.002, target: self, selector: #selector(MyClass.update), userInfo: nil, repeats: true)
 self, selector: "update", userInfo: nil, repeats: true)



func update() {
    // Code here
}