Skip to main content
All docs
V24.1

Multi-Threaded Algorithms

  • 2 minutes to read

DevExpress data controllers that manage data in container controls rely on multi-threaded algorithms for data sort, filter, and group operations. These multi-threaded algorithms significantly speed up (two or more times faster) all data shaping operations.

In addition, the PDF Viewer control renders page content in a separate thread to enhance user experience during navigation across large documents.

Important

We recommend that you leave multi-threaded algorithms enabled to ensure the best application performance. You may need to disable multi-threaded sorting only if you implement a thread-unsafe sort or filter operation in the corresponding event handler.

When You Need to Disable Multi-Threading

You need to disable multi-threaded algorithms only if you implement a thread-unsafe handler for one of the following events:

TcxVirtualVerticalGrid.OnFilterRecord
Allows you to implement a custom data filtering algorithm.
TcxCustomDataController.OnFilterRecord
Allows you to implement a custom data filtering algorithm.
TcxCustomDataController.OnCompare
Allows you to implement a custom sorting algorithm.
TcxCustomTreeList.OnCompare
Allows you to implement a custom node sorting algorithm.

Global Multi-Threading Flag

The global dxEnableMultiThreading constant specifies if multi-threading algorithms are enabled application-wide for all DevExpress controls that can run processes in separate threads. If the dxEnableMultiThreading constant is set to False, all other multi-threading settings have no effect.

Control-Level Multi-Threading Settings

You can use the following properties to disable multi-threaded algorithms at the level of individual controls if necessary:

TdxPDFViewerOptionsBehavior.RenderContentInBackground
Specifies if the PDF Viewer control repaints document pages in a separate thread rather than the main thread.
TcxCustomDataController.MultiThreadedOptions
Provides access to multi-threading settings.
TcxTreeListOptionsData.MultiThreadedSorting
Specifies if the tree list control uses a multi-threaded sorting algorithm.
TcxvgMultiRecordOptionsData.MultiThreadedFiltering
Specifies if the vertical grid control uses a multi-threaded filtering algorithm.