---
name: "dispatch_after_f"
section: "3"
platform: "linux"
package: "libdispatch-dev"
version: "0~svn197-3.2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/dispatch_after"
---

# dispatch\_after\_f(3)

schedule blocks for deferred execution

Part of [dispatch\_after(3)](/dispatch_after/3.md).

## NAME

**dispatch\_after** – schedule blocks for deferred execution

## SYNOPSIS

**#include \<dispatch/dispatch.h\>**

*void*\

**dispatch\_after**(*dispatch\_time\_t when*, *dispatch\_queue\_t queue*, *void (^block)(void)*);

*void*\

**dispatch\_after\_f**(*dispatch\_time\_t when*, *dispatch\_queue\_t queue*, *void \*context*, *void (\*function)(void \*)*);

## DESCRIPTION

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**().

For a more detailed description about submitting blocks to queues, see [dispatch\_async(3)](/dispatch_async/3.md).

## CAVEATS

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.

## FUNDAMENTALS

The **dispatch\_after**() function is a wrapper around **dispatch\_after\_f**().

## SEE ALSO

[dispatch(3)](/dispatch/3.md), [dispatch\_async(3)](/dispatch_async/3.md), [dispatch\_time(3)](/dispatch_time/3.md)
