---
title: "continueAsynchronousWorkOnMainThread(_:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nsdocument/continueasynchronousworkonmainthread(_:)"
---

# continueAsynchronousWorkOnMainThread(_:)

Invokes the passed-in block on the main thread.

## Declaration

```swift
nonisolated func continueAsynchronousWorkOnMainThread(_ block: @escaping () -> Void)
```

## Parameters

- `block`: The block to be invoked.

## Discussion

Discussion If the main thread is blocked by an invocation of performActivity(withSynchronousWaiting:using:) or performSynchronousFileAccess(_:), this method interrupts that blocking activity, performs the specified block, and then resumes the blocking activity after block returns. Invocations of this method always return before the passed-in block is invoked. You can invoke this method when work is being done on a non-main thread and part of the work must be continued on the main thread. For example, save(to:ofType:for:completionHandler:) uses this method when it has just completed the actual writing of the file during asynchronous saving and, to finish the saving operation, must invoke updateChangeCount(withToken:for:) and other methods on the main thread. This method can be invoked on any thread.

## See Also

### Performing Tasks Serially

- [performSynchronousFileAccess(_:)](appkit/nsdocument/performsynchronousfileaccess(_:).md)
- [performAsynchronousFileAccess(_:)](appkit/nsdocument/performasynchronousfileaccess(_:).md)
- [performActivity(withSynchronousWaiting:using:)](appkit/nsdocument/performactivity(withsynchronouswaiting:using:).md)
- [continueActivity(_:)](appkit/nsdocument/continueactivity(_:).md)
