---
title: DispatchSourceTimer
framework: dispatch
role: symbol
role_heading: Protocol
path: dispatch/dispatchsourcetimer
---

# DispatchSourceTimer

A dispatch source that submits the event handler block based on a timer.

## Declaration

```swift
protocol DispatchSourceTimer : DispatchSourceProtocol, Sendable
```

## Overview

Overview You do not adopt this protocol in your objects. Instead, use the makeTimerSource(flags:queue:) method to create an object that adopts this protocol.

## Topics

### Scheduling the Timer Trigger Conditions

- [schedule(deadline:repeating:leeway:)](dispatch/dispatchsourcetimer/schedule(deadline:repeating:leeway:)-hvhp.md)
- [schedule(deadline:repeating:leeway:)](dispatch/dispatchsourcetimer/schedule(deadline:repeating:leeway:)-24w9r.md)
- [schedule(wallDeadline:repeating:leeway:)](dispatch/dispatchsourcetimer/schedule(walldeadline:repeating:leeway:)-7c4d7.md)
- [schedule(wallDeadline:repeating:leeway:)](dispatch/dispatchsourcetimer/schedule(walldeadline:repeating:leeway:)-21bay.md)

### Deprecated

- [scheduleOneshot(deadline:leeway:)](dispatch/dispatchsourcetimer/scheduleoneshot(deadline:leeway:).md)
- [scheduleOneshot(wallDeadline:leeway:)](dispatch/dispatchsourcetimer/scheduleoneshot(walldeadline:leeway:).md)
- [scheduleRepeating(deadline:interval:leeway:)](dispatch/dispatchsourcetimer/schedulerepeating(deadline:interval:leeway:)-3k199.md)
- [scheduleRepeating(deadline:interval:leeway:)](dispatch/dispatchsourcetimer/schedulerepeating(deadline:interval:leeway:)-4wtot.md)
- [scheduleRepeating(wallDeadline:interval:leeway:)](dispatch/dispatchsourcetimer/schedulerepeating(walldeadline:interval:leeway:)-6fiox.md)
- [scheduleRepeating(wallDeadline:interval:leeway:)](dispatch/dispatchsourcetimer/schedulerepeating(walldeadline:interval:leeway:)-942p7.md)

## Relationships

### Inherits From

- [DispatchSourceProtocol](dispatch/dispatchsourceprotocol.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

### Conforming Types

- [DispatchSource](dispatch/dispatchsource.md)

## See Also

### Creating a Timer Source

- [makeTimerSource(flags:queue:)](dispatch/dispatchsource/maketimersource(flags:queue:).md)
- [DispatchSource.TimerFlags](dispatch/dispatchsource/timerflags.md)
