---
title: IODispatchQueue
framework: driverkit
role: symbol
role_heading: Class
path: driverkit/iodispatchqueue
---

# IODispatchQueue

An object that manages the serial execution of blocks.

## Declaration

```occ
class IODispatchQueue;
```

## Overview

Overview An IODispatchQueue object is a FIFO queue that you use to execute tasks serially in your driver. You submit tasks as code blocks, and the system dequeues one block at a time, executing them sequentially. important: Always use an IODispatchQueue instead of a dispatch_queue_t structure to schedule tasks for your driver.

## Topics

### Creating a Dispatch Queue

- [Create](driverkit/iodispatchqueue/create.md)
- [init](driverkit/iodispatchqueue/init.md)
- [free](driverkit/iodispatchqueue/free.md)

### Executing a Task Asynchronously

- [DispatchAsync](driverkit/iodispatchqueue/dispatchasync.md)
- [DispatchAsync_f](driverkit/iodispatchqueue/dispatchasync_f.md)
- [IODispatchBlock](driverkit/iodispatchblock.md)
- [IODispatchFunction](driverkit/iodispatchfunction.md)

### Executing a Task Synchronously

- [DispatchSync](driverkit/iodispatchqueue/dispatchsync.md)
- [DispatchSync_f](driverkit/iodispatchqueue/dispatchsync_f.md)

### Stopping the Queue

- [Cancel](driverkit/iodispatchqueue/cancel.md)
- [IODispatchQueueCancelHandler](driverkit/iodispatchqueuecancelhandler.md)

### Getting Queue Information

- [GetName](driverkit/iodispatchqueue/getname.md)
- [OnQueue](driverkit/iodispatchqueue/onqueue.md)
- [IODispatchQueueName](driverkit/iodispatchqueuename.md)

### Logging Dispatch Information

- [Log](driverkit/iodispatchqueue/log.md)
- [IODispatchLogFunction](driverkit/iodispatchlogfunction.md)

### Instance Methods

- [DispatchConcurrent](driverkit/iodispatchqueue/dispatchconcurrent.md)
- [DispatchConcurrent_f](driverkit/iodispatchqueue/dispatchconcurrent_f.md)
- [RunAction](driverkit/iodispatchqueue/runaction.md)
- [Sleep](driverkit/iodispatchqueue/sleep.md)
- [SleepWithDeadline](driverkit/iodispatchqueue/sleepwithdeadline.md)
- [SleepWithTimeout](driverkit/iodispatchqueue/sleepwithtimeout.md)
- [Wakeup](driverkit/iodispatchqueue/wakeup.md)
- [WakeupWithOptions](driverkit/iodispatchqueue/wakeupwithoptions.md)

## Relationships

### Inherits From

- [OSObject](driverkit/osobject.md)

## See Also

### Event management

- [IOInterruptDispatchSource](driverkit/iointerruptdispatchsource.md)
- [IOTimerDispatchSource](driverkit/iotimerdispatchsource.md)
- [IODataQueueDispatchSource](driverkit/iodataqueuedispatchsource.md)
- [IODispatchSource](driverkit/iodispatchsource.md)
- [OSAction](driverkit/osaction.md)
