Si vous avez vraiment besoin de dormir, essayez usleep
comme suggéré dans la réponse de @user3441734.
Cependant, vous pouvez vous demander 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 pas pendant qu'elle fonctionne.
Vous pouvez 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
}
1 votes
Le thread sleep ou yield est valable dans le cas du polling, par exemple. De nombreuses interfaces ne proposent pas de notifications. Vous devez donc vérifier de temps en temps si un changement asynchrone est imminent. Si vous le faites sans mettre le thread en pause entre les vérifications, vous harcelez inutilement le CPU et bloquez probablement le processus que vous attendez.
1 votes
Sleep() prend int comme paramètre. Ainsi, sleep(0.002) fera dormir 0 seconde. Utilisez plutôt usleep(nanosecondes).
0 votes
Pour ceux qui souhaitent utiliser les fonctions async & await de Swift 5.5, voir este réponse d'un autre poste.