2014-09-26 4 views
11

So che dispatch_time è l'ora in base all'orologio del dispositivo e se il dispositivo va a dormire, l'orologio dorme anche. D'altra parte il dipatch_walltime è il tempo secondo l'orologio da parete, che non va mai a dormire. Le mie domande sono, c'è qualche differenza, in termini di prestazioni o altro, di usare l'una o l'altra in diverse situazioni? Qualcuno può darmi qualche dettaglio in più, perché i documenti Apple non sono esaustivi.Qual è la differenza tra dispatch_time e dispatch_walltime e in quali situazioni è meglio utilizzare l'una o l'altra?

Ad esempio, sto scrivendo una classe Timer che opera su determinati intervalli. Anche il margine di manovra potrebbe essere tra 10 e 30 secondi. Quale dovrei usare dispatch_time o dispatch_walltime, in termini di prestazioni.

risposta

19

dispatch_time si interrompe quando il computer va in stop. dispatch_walltime continua a funzionare. Quindi se vuoi fare un'azione tra un'ora, ma dopo 5 minuti il ​​tuo computer va in stop per 50 minuti, dispatch_walltime eseguirà un'ora da ora, 5 minuti dopo che il computer si è svegliato. dispatch_time verrà eseguito dopo che il computer è in esecuzione da un'ora, ovvero 55 minuti dopo il suo riavvio.

Problemi correlati