THotPDF.RenderLoadedPagesParallelOrdered Method

Kompilira i iscrtava učitane stranice istodobno dok isporučuje dovršene bitmap slike u redoslijedu ulaza kroz ograničeni callback pozivne niti

Deklaracija

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;

Callback i vlasništvo

Callback izvodi se serijski na pozivnoj niti s pozicijom utemeljenom na nuli, traženim indeksom stranice, posuđenom bitmap slikom i zastavom prekida

Bitmap slika važi samo tijekom trajanja callbacka i otpušta se odmah nakon što se callback vrati, pa je kopirajte ili kodirajte unutar callbacka kad rezultat mora nadživjeti taj poziv

Postavite Cancel da zaustavite potraživanje novih stranica, probudite blokirane radnike, prikupite rad u tijeku, otpustite neobjavljene rezultate i vratite broj dovršenih callbacka

Otkazivanje callbacka također budi radnike koji čekaju memorijsku rezervaciju, a da to interno buđenje ne postane pogreška; vanjski token otkazivanja ili iznimka u callbacku i dalje prijavljuju neuspjeh nakon čišćenja

Povratni pritisak

OutputQueueDepth ograničava dovršene bitmap slike uključujući bitmap sliku aktivnu u callbacku; vrijednosti ispod jedan odabiru efektivni broj radnika, a vrijednosti iznad broja stranica se stežu

Planer rezervira izlazni kapacitet za sljedeći potreban položaj ulaza, pa kasnije stranice ne mogu napuniti red i blokirati poredani napredak kad se ranija stranica kompilira sporije

Uz PeakMemorySchedulerEnabled, tražena paralelnost smanjuje se od najveće procjene stranice i trenutno dostupnog globalnog proračuna, a svaka rezervacija stranice ostaje aktivna od potraživanja rada dok njena posuđena bitmap slika ne izađe iz callbacka

Memorijske rezervacije traže se redoslijedom ulaza prije paralelne kompilacije i iscrtavanja, pa kasnije stranice ne mogu uzeti proračun koji treba sljedeći callback

Oblik reda stoga se pošteno natječe s aktivnom kompilacijom i reprodukcijom za isti procesni proračun, dok prekid ili neuspjeh otpušta neobjavljene rezervacije prije pridruživanja radnicima

Callback ne smije mijenjati ili uništiti dokument dok su radnici aktivni

THPDFParallelRenderPipelineInfo · Display Lists and Print Production