2010-07-25 6 views
1

Je pense qu'il ya un minimum time span que nous pouvons assigner comme interval pour programmer une tâche dans le SDK de l'iPhone. Mais je n'ai pas encore trouvé minimum interval/time span.intervalle effectif minimum de planification (iphone objectif c)

Pourriez-vous me le faire savoir s'il vous plaît! Cela me sera très utile.

EDIT

Toute référence de détail est plus sensible. Merci d'avance

Répondre

2

0.0 Je crois. J'ai vu cela utilisé comme une "astuce" pour que le système exécute quelque chose immédiatement après que le thread courant passe dans un état d'attente.

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/performSelector:withObject:afterDelay:..

« Le temps minimum avant que le message est envoyé Spécifier un retard de 0 ne provoque pas nécessairement le sélecteur à effectuer immédiatement le sélecteur est toujours en attente sur la boucle d'exécution du thread et réalisé Dès que possible."

L'implication est, vous pouvez spécifier 0.

+0

franchement intervalle '0'-voix ne sert à rien, puisque je peut le faire sans planificateur. Est-ce que cela signifie que je peux spécifier quelque chose comme 0.000000000001, qui est plus grand que '0'? – Sadat

+0

Je ne dirais pas 0 intervalle est inutile. C'est en fait très utile si vous voulez que quelque chose s'exécute immédiatement après que votre thread entre en veille ... par exemple, je l'utilise dans ma méthode ApplicationDidFinishLaunching parce que j'ai besoin de terminer l'initialisation de l'application (par exemple, pour gérer une requête url) , mais toujours vouloir exécuter la méthode à l'instant où le fil est prêt. Oui, vous pouvez spécifier toute valeur à virgule flottante double précision valide> = 0. – Steve

+0

Pourquoi ne pas utiliser l'une des variantes 'performSelector' dans ce cas? –

3

NSTimeInterval est juste un "double", donc pouvez spécifier une valeur double. La plus petite valeur à côté de 0 est d'environ 2,225e-308. Cependant, n'oubliez pas que NSTimer n'est pas un outil de haute précision. Vous pouvez spécifier de très petits intervalles, mais ils ne sont pas respectés par le système d'exploitation. Voici ce que dit le documentation for NSTimer:

la résolution effective de l'intervalle de temps pour une minuterie est limitée à l'ordre de 50-100 millisecondes

Questions connexes