---
title: "generateCGImageAsynchronously(for:completionHandler:)"
framework: avfoundation
role: symbol
role_heading: Instance Method
path: "avfoundation/avassetimagegenerator/generatecgimageasynchronously(for:completionhandler:)"
---

# generateCGImageAsynchronously(for:completionHandler:)

Generates an image asynchronously for a requested time, and returns the result in a callback.

## Declaration

```swift
func generateCGImageAsynchronously(for requestedTime: CMTime, completionHandler handler: @escaping @Sendable (CGImage?, CMTime, (any Error)?) -> Void)
```

## Parameters

- `requestedTime`: A time in the video timeline for which to generate an image. The requested time and actual time at which it generates an image may differ depending on the generator’s time tolerance settings.
- `handler`: A callback that the image generator invokes with the result of the request.

## Discussion

Discussion Swift clients should use the asynchronous image(at:) method instead.

## Topics

### Data types

- [AVAssetImageGeneratorCompletionHandler](avfoundation/avassetimagegeneratorcompletionhandler.md)
- [AVAssetImageGenerator.Result](avfoundation/avassetimagegenerator/result.md)

## See Also

### Generating images

- [image(at:)](avfoundation/avassetimagegenerator/image(at:).md)
- [images(for:)](avfoundation/avassetimagegenerator/images(for:).md)
- [AVAssetImageGenerator.Images](avfoundation/avassetimagegenerator/images.md)
- [generateCGImagesAsynchronously(forTimes:completionHandler:)](avfoundation/avassetimagegenerator/generatecgimagesasynchronously(fortimes:completionhandler:).md)
- [AVAssetImageGeneratorCompletionHandler](avfoundation/avassetimagegeneratorcompletionhandler.md)
- [cancelAllCGImageGeneration()](avfoundation/avassetimagegenerator/cancelallcgimagegeneration().md)
- [copyCGImage(at:actualTime:)](avfoundation/avassetimagegenerator/copycgimage(at:actualtime:).md)
