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.