---
title: dispatch_group_async_f
framework: dispatch
role: symbol
role_heading: Function
path: dispatch/dispatch_group_async_f
---

# dispatch_group_async_f

Submits an application-defined function to a dispatch queue and associates it with the specified dispatch group.

## Declaration

```occ
extern void dispatch_group_async_f(dispatch_group_t group, dispatch_queue_t queue, void *context, dispatch_function_t work);
```

## Parameters

- `group`: A dispatch group to associate the submitted function with. The group is retained by the system until the application-defined function has run to completion. This parameter cannot be NULL.
- `queue`: The dispatch queue to which the function is submitted for asynchronous invocation. The queue is retained by the system until the application-defined function has run to completion. This parameter cannot be NULL.
- `context`: The application-defined context parameter to pass to the application-defined function.
- `work`: The application-defined function to invoke on the target queue. The first parameter passed to this function is the value in the context parameter.

## Discussion

Discussion Submits an application-defined function to a dispatch queue and associates it with the given dispatch group. The dispatch group can be used to wait for the completion of the application-defined functions it references.

## See Also

### Adding Work to the Group

- [dispatch_group_async](dispatch/dispatch_group_async.md)
