THotPDF.RenderLoadedPageTilesParallel Method
Vykresluje tile z jedné načtené stránky na izolovaných workerech, přičemž volající vlákno doručuje vypůjčené bitmapy v row-major pořadí
Deklarace
function RenderLoadedPageTilesParallel(PageIndex, DPI,
TileWidthPixels, TileHeightPixels, MaxConcurrency: Integer;
MaxWorkingBytes: Int64; Callback: THPDFRenderTileEvent): Integer; overload;
function RenderLoadedPageTilesParallel(PageIndex, DPI,
TileWidthPixels, TileHeightPixels, MaxConcurrency: Integer;
MaxWorkingBytes: Int64; Callback: THPDFRenderTileEvent;
out Info: THPDFParallelTileRenderInfo): Integer; overload;
Streaming a vlastnictví
Callback běží serializovaně na volajícím vlákně a přijímá tile v row-major pořadí, i když je workery dokončí v jiném pořadí
Každá bitmapa je vypůjčena jen na dobu vyvolání callbacku a hned poté se uvolní, takže pokud má přežít, zkopírujte nebo zakódujte ji uvnitř callbacku
Nastavením Cancel zastavíte nová převzetí práce, probudíte workery, uvolníte nepublikované bitmapy a získáte počet doručených callbacků
Callback nesmí dokument měnit ani ničit, dokud jsou workery aktivní
Paměť a sdílení
MaxWorkingBytes musí být kladné a ještě před začátkem práce sníží počet workerů odvozený z největší konzervativní rezervace tile
Každý worker udržuje nejvýše jednu aktivní nebo dokončenou tile a process-wide peak-memory scheduler ho může při konkurenční práci s dokumentem ještě pozdržet
Paralelní renderery sdílí zkopírované neměnné sekvence tokenů glyfů Type 3 a halftone threshold screens přes ohraničený budget RendererSharedCacheMaxBytes
THPDFParallelTileRenderInfo · Display Lists and Print Production