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