<!--
{
  "availability" : [
    "iOS: 4.0.0 -",
    "iPadOS: 4.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.6.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Dispatch",
  "identifier" : "/documentation/Dispatch/DispatchObject/resume()",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Dispatch"
    ],
    "preciseIdentifier" : "c:@F@dispatch_resume"
  },
  "title" : "resume()"
}
-->

# resume()

Resumes the invocation of block objects on a dispatch object.

```
func resume()
```

## Discussion

Calling this function decrements the suspension count of a suspended dispatch queue or dispatch event source object. While the count is greater than zero, the object remains suspended. When the suspension count returns to zero, any blocks submitted to the dispatch queue or any events observed by the dispatch source while suspended are delivered.

With one exception, each call to [`resume()`](/documentation/Dispatch/DispatchObject/resume()) must balance a call to [`suspend()`](/documentation/Dispatch/DispatchObject/suspend()). New dispatch event source objects returned by [`dispatch_source_create`](/documentation/Dispatch/dispatch_source_create) have a suspension count of 1 and must be resumed before any events are delivered. This approach allows your application to fully configure the dispatch event source object prior to delivery of the first event. In all other cases, it is undefined to call [`resume()`](/documentation/Dispatch/DispatchObject/resume()) more times than [`suspend()`](/documentation/Dispatch/DispatchObject/suspend()), which would result in a negative suspension count.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)