THotPDF.RenderLoadedPagesParallelOrdered Method
Kompiluje a vykresľuje načítané stránky súbežne a doručuje dokončené bitmapy v poradí vstupu cez ohraničené spätné volanie vlákna volajúceho
Deklarácia
function RenderLoadedPagesParallelOrdered(
const PageIndices: array of Integer; DPI, MaxConcurrency,
OutputQueueDepth: Integer; Callback: THPDFParallelRenderPageEvent): Integer; overload;
function RenderLoadedPagesParallelOrdered(
const PageIndices: array of Integer; DPI, MaxConcurrency,
OutputQueueDepth: Integer; Callback: THPDFParallelRenderPageEvent;
out Info: THPDFParallelRenderPipelineInfo): Integer; overload;
Spätné volanie a vlastníctvo
Callback prebieha sériovo vo vlákne volajúceho s pozíciou vstupu od nuly, požadovaným indexom stránky, požičanou bitmapou a príznakom zrušenia
Bitmapa je platná len počas trvania spätného volania a uvoľní sa ihneď po návrate spätného volania, preto ju skopírujte alebo zakódujte v rámci spätného volania, keď výsledok musí prežiť toto volanie
Nastavte Cancel na zastavenie nárokovania nových stránok, prebudenie blokovaných pracovníkov, pripojenie prebiehajúcej práce, uvoľnenie nezverejnených výsledkov a vrátenie počtu dokončených spätných volaní
Zrušenie zo spätného volania tiež prebudí pracovníkov čakajúcich na rezerváciu pamäti bez toho, aby sa toto interné prebudenie zmenilo na chybu; externý token zrušenia alebo výnimka v spätnom volaní po vyčistení stále nahlásia zlyhanie
Spätný tlak
OutputQueueDepth obmedzuje dokončené bitmapy vrátane bitmapy aktívnej v spätnom volaní; hodnoty pod jedna vyberú efektívny počet pracovníkov a hodnoty nad počet stránok sa orezávajú
Plánovač rezervuje výstupnú kapacitu pre ďalšiu požadovanú pozíciu vstupu, takže neskoršie stránky nemôžu zaplniť front a blokovať usporiadaný postup, keď sa skoršia stránka kompiluje pomalšie
S PeakMemorySchedulerEnabled sa požadovaná paralelizácia zníži z najväčšieho odhadu stránky a aktuálne dostupného globálneho rozpočtu a každá rezervácia stránky zostáva aktívna od nárokovania práce, kým jej požičaná bitmapa neopustí spätné volanie
Rezervácie pamäti sa vyžiadajú v poradí vstupu ešte pred paralelnou kompiláciou a vykresľovaním, takže neskoršie stránky nemôžu vziať rozpočet potrebný pre ďalšie spätné volanie
Zaradený výstup preto spravodlivo súťaží s aktívnou kompiláciou a prehrávaním o rovnaký rozpočet v rámci procesu, zatiaľ čo zrušenie alebo zlyhanie uvoľní nezverejnené rezervácie pred pripojením pracovníkov
Spätné volanie nesmie mutovať ani zničiť dokument, kým sú pracovníci aktívni
THPDFParallelRenderPipelineInfo · Zoznamy zobrazenia a tlačová produkcia