THotPDF.RenderLoadedPagesParallel Method
Pipelines display-list compilation and playback across bounded workers whilst 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;
Behaviour
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 normalised 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