THotPDF.RenderLoadedPagesParallel Method
Pipelinear displaylistkompilering och uppspelning över avgränsade arbetare samtidigt som inmatningsordningen bevaras i utmatningsarrayen
Deklaration
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;
Beteende
Kompilering körs utanför displaylistcache-låset, så orelaterade sidor kan kompileras samtidigt och den första färdiga sidan kan börja renderas innan hela inmatningsuppsättningen är kompilerad
Schemaläggaren balanserar dynamiskt kompilerings- och uppspelningsarbete, begränsar arbetare till MaxConcurrency, isolerar renderartillstånd per arbetare och delar cacheposter genom skyddade användningsantal
När PeakMemorySchedulerEnabled är true reduceras det effektiva arbetarantalet från den normaliserade begäran med den största siduppskattningen och den för närvarande tillgängliga globala budgeten, och varje anspråkad sida håller sedan sin egen rättvisa minnesreservation genom kompilering och uppspelning
Överlagringen med Info rapporterar begärda och effektiva arbetare, den minneshärledda arbetargränsen, sidreservationsuppskattningar, toppreserverade renderingsbytes, schemaläggarantagningar, fördröjda sidor, väntetid, kompilerings- och cacheträffantal, slutförd utmatning, toppstegskonkurrens, svarstid för första resultat, total förfluten tid och antalet sidor som kompilerats när den första bitmappen slutfördes
Anroparen äger varje icke-nil-bitmapp i Bitmaps
Slutförda arrayresultat förblir anropareägda efter att deras pågående reservationer frigjorts, så använd RenderLoadedPagesParallelOrdered när hela utmatningsuppsättningen i sig måste förbli inom schemaläggarbudgeten
THPDFParallelRenderPipelineInfo · Displaylistor och tryckproduktion