---
title: "perform(schedule:_:)"
framework: coredata
role: symbol
role_heading: Instance Method
path: "coredata/nsmanagedobjectcontext/perform(schedule:_:)"
---

# perform(schedule:_:)

Submits a closure to the context’s queue for asynchronous execution.

## Declaration

```swift
@preconcurrency nonisolated func perform<T>(schedule: NSManagedObjectContext.ScheduledTaskType = .immediate, _ block: @escaping @Sendable () throws -> T) async rethrows -> T
```

## Parameters

- `schedule`: The required execution schedule. For more information, see doc://com.apple.coredata/documentation/CoreData/NSManagedObjectContext/ScheduledTaskType.
- `block`: The closure to perform.

## See Also

### Performing block operations

- [perform(_:)](coredata/nsmanagedobjectcontext/perform(_:).md)
- [performAndWait(_:)](coredata/nsmanagedobjectcontext/performandwait(_:)-ypye.md)
- [performAndWait(_:)](coredata/nsmanagedobjectcontext/performandwait(_:)-6aaf1.md)
- [NSManagedObjectContext.ScheduledTaskType](coredata/nsmanagedobjectcontext/scheduledtasktype.md)
