J'ajoute un bloc à une file d'attente (pas la file d'attente principale), en utilisant Grand Central Dispatch. Ce bloc a une boucle et entre chaque passage de la boucle un petit délai de 0,02 secondes est requis. J'utiliseiphone - est-il correct d'utiliser usleep sur un thread secondaire sur Grand Central Dispatch?
dispatch_async(myOwnQueue, ^{
// begin loop
// do stuff
usleep(20000);
// end loop
});
dans cette file d'attente. Comme ce n'est pas la file d'attente principale, cela ne bloquera pas le thread principal.
Le problème est que Xcode se plaint: avertissement: déclaration implicite de la fonction « usleep »
Y at-il d'autre moyen de le faire?
merci.
Ne sera pas dispatch_after une meilleure solution? – NSIntegerMax
Ouais, l'attente n'est pas la réponse. Utilisez dispatch_after ou un NSTimer, ou un timer de dispatch_source, mais pas occupé-attendez sur les threads GCD. GCD fonctionne mieux lorsque les éléments de travail que vous lui soumettez ne bloquent pas. – ipmcc