<!--
{
  "availability" : [
    "macOS: 10.6.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSDocument/canConcurrentlyReadDocuments(ofType:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSDocument(cm)canConcurrentlyReadDocumentsOfType:"
  },
  "title" : "canConcurrentlyReadDocuments(ofType:)"
}
-->

# canConcurrentlyReadDocuments(ofType:)

Returns a Boolean value that indicates whether the receiver reads multiple documents of the given type concurrently.

```
class func canConcurrentlyReadDocuments(ofType typeName: String) -> Bool
```

## Parameters

`typeName`

The string that identifies the document type.

## Return Value

<doc://com.apple.documentation/documentation/Swift/false> by default; subclasses can override to return <doc://com.apple.documentation/documentation/Swift/true>, thereby causing documents of the specified type to be read concurrently.

## Discussion

Your [`NSDocument`](/documentation/AppKit/NSDocument) subclass can implement this method to return <doc://com.apple.documentation/documentation/Swift/true> to enable loading of documents concurrently, using background threads. When this facility is enabled in this way, [`init(contentsOf:ofType:)`](/documentation/AppKit/NSDocument/init(contentsOf:ofType:)) executes on a background thread when opening files via the Open panel or from the Finder. This allows concurrent reading of multiple documents and also allows the app to be responsive while reading a large document.

The default implementation of this method returns <doc://com.apple.documentation/documentation/Swift/false>. A subclass override should return <doc://com.apple.documentation/documentation/Swift/true> only for document types whose reading is thread-safe, as described in [`Multicore Considerations`](/documentation/AppKit/NSDocument#Multicore-Considerations). You should disable undo registration during document reading, which is a good idea even in the absence of concurrency.

If you are checking the current Apple Event for a search string, you should not enable concurrent document opening, because code handling a document opening triggered by an Apple Event cannot get the current Apple Event. This happens because the event is suspended until all documents are read to enable correct reporting of success or error.

## See Also

[`readableTypes`](/documentation/AppKit/NSDocument/readableTypes)

Returns the types of data the receiver can read natively and any types filterable to that native type.



---

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)