Skip to main content
All docs
V25.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 (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