<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "Dispatch",
  "identifier" : "/documentation/Dispatch/DispatchObject",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Dispatch"
    ],
    "preciseIdentifier" : "c:objc(cs)OS_dispatch_object"
  },
  "title" : "DispatchObject"
}
-->

# DispatchObject

The base class for most dispatch types.

```
class DispatchObject
```

## Overview

There are many types of dispatch objects, including [`DispatchQueue`](/documentation/Dispatch/DispatchQueue), [`DispatchGroup`](/documentation/Dispatch/DispatchGroup), and [`DispatchSource`](/documentation/Dispatch/DispatchSource). The base dispatch object interfaces allow you to manage memory, pause and resume execution, define object context, log task data, and more.

## Topics

### Activating, Suspending, and Resuming

[`activate()`](/documentation/Dispatch/DispatchObject/activate())

Activates the dispatch object.

[`resume()`](/documentation/Dispatch/DispatchObject/resume())

Resumes the invocation of block objects on a dispatch object.

[`suspend()`](/documentation/Dispatch/DispatchObject/suspend())

Suspends the invocation of block objects on a dispatch object.

### Changing the Assigned Target Queue

[`setTarget(queue:)`](/documentation/Dispatch/DispatchObject/setTarget(queue:))

Specifies the dispatch queue on which to perform work associated with the current object.



---

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)