Skip to main content
All docs
V24.2

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

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 (up to 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.
See Also