dispatch_after - Man Page

schedule blocks for deferred execution


#include <dispatch/dispatch.h>

dispatch_after(dispatch_time_t when, dispatch_queue_t queue, void (^block)(void));

dispatch_after_f(dispatch_time_t when, dispatch_queue_t queue, void *context, void (*function)(void *));


The dispatch_after() function submits the block to the given queue at the time specified by the when parameter. The when parameter is a value created by dispatch_time() or dispatch_walltime(). Submission of the block may be delayed by the system in order to improve power consumption and system performance. The system applies a leeway (see dispatch_source_set_timer(3)) that is equal to one tenth of the interval between when and the time at which the function is called, with the leeway capped to at least one millisecond and at most one minute.

For a more detailed description about submitting blocks to queues, see dispatch_async(3).


dispatch_after() retains the passed queue.

Specifying DISPATCH_TIME_NOW as the when parameter is supported, but is not as efficient as calling dispatch_async().

The result of passing DISPATCH_TIME_FOREVER as the when parameter is undefined.


The dispatch_after() function is a wrapper around dispatch_after_f().

See Also

dispatch(3), dispatch_async(3), dispatch_time(3)

Referenced By

dispatch(3), dispatch_time(3).

May 1, 2009