s'il vous plaît, quelqu'un me dit comment utiliser sleep () pendant quelques millisecondes dans Swift 2.2?
while (true){
print("sleep for 0.002 seconds.")
sleep(0.002) // not working
}
mais
while (true){
print("sleep for 2 seconds.")
sleep(2) // working
}
ça fonctionne.
usleep () prend des millions de secondes
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)
utiliser func usleep(_: useconds_t) -> Int32
(importer Darwin
ou Foundation
...)
Si vous avez vraiment besoin de dormir, essayez usleep
comme suggéré dans la réponse de @ user3441734.
Toutefois, vous voudrez peut-être déterminer si la mise en veille est la meilleure option: c'est comme un bouton de pause et l'application sera gelée et ne répondra plus pendant son exécution.
Vous voudrez peut-être utiliser 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
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.002) {
/*Do something after 0.002 seconds have passed*/
}
DispatchQueue.global(qos: .background).async {
let second: Double = 1000000
usleep(useconds_t(0.002 * second))
print("Active after 0.002 sec, and doesn't block main")
DispatchQueue.main.async{
//do stuff in the main thread here
}
}