---
title: canDrawConcurrently
framework: appkit
role: symbol
role_heading: Instance Property
path: appkit/nsview/candrawconcurrently
---

# canDrawConcurrently

A Boolean value indicating whether the view can draw its contents on a background thread.

## Declaration

```swift
var canDrawConcurrently: Bool { get set }
```

## Discussion

Discussion If your view’s draw(_:) implementation can draw safely on a background thread, set this property to true. Doing so gives AppKit the ability to run your view’s drawing code off the app’s main thread, which can improve performance. The view’s window must also have its allowsConcurrentViewDrawing property set to true (the default) for threaded view drawing to occur.

## See Also

### Drawing the View’s Content

- [updateLayer()](appkit/nsview/updatelayer().md)
- [draw(_:)](appkit/nsview/draw(_:).md)
- [clipsToBounds](appkit/nsview/clipstobounds.md)
- [visibleRect](appkit/nsview/visiblerect.md)
- [getRectsBeingDrawn(_:count:)](appkit/nsview/getrectsbeingdrawn(_:count:).md)
- [needsToDraw(_:)](appkit/nsview/needstodraw(_:).md)
- [wantsDefaultClipping](appkit/nsview/wantsdefaultclipping.md)
- [bitmapImageRepForCachingDisplay(in:)](appkit/nsview/bitmapimagerepforcachingdisplay(in:).md)
- [cacheDisplay(in:to:)](appkit/nsview/cachedisplay(in:to:).md)
- [NSBorderType](appkit/nsbordertype.md)
