THotPDF.RenderLoadedPagesParallel Method

Pipelines display-list compilation and playback across bounded workers while preserving input order in the output array

Declaration

function RenderLoadedPagesParallel(const PageIndices: array of Integer;
    DPI, MaxConcurrency: Integer; out Bitmaps: THPDFBitmapArray): Integer; overload;

function RenderLoadedPagesParallel(const PageIndices: array of Integer;
    DPI, MaxConcurrency: Integer; out Bitmaps: THPDFBitmapArray;
    out Info: THPDFParallelRenderPipelineInfo): Integer; overload;

Behavior

Compilation runs outside the display-list cache lock, so unrelated pages can compile concurrently and the first ready page can begin rendering before the complete input set is compiled

The scheduler dynamically balances compile and playback work, caps workers at MaxConcurrency, isolates renderer state per worker, and shares cache entries through protected use counts

When PeakMemorySchedulerEnabled is true, the effective worker count is reduced from the normalized request using the largest page estimate and currently available global budget, then every claimed page holds its own fair memory reservation through compilation and playback

The overload with Info reports requested and effective workers, the memory-derived worker limit, page reservation estimates, peak reserved render bytes, scheduler admissions, delayed pages, wait time, compile and cache-hit counts, completed output, peak stage concurrency, first-result latency, total elapsed time, and the number of pages compiled when the first bitmap completed

The caller owns every non-nil bitmap in Bitmaps

Completed array results remain caller-owned after their in-flight reservations are released, so use RenderLoadedPagesParallelOrdered when the complete output set itself must remain inside the scheduler budget

THPDFParallelRenderPipelineInfo · Display Lists and Print Production