THotPDF.RenderLoadedPageTilesParallel Method

Renderizza i tile di una pagina caricata su worker isolati mentre il thread chiamante consegna le bitmap prese in prestito in ordine row-major

Dichiarazione

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 e ownership

Callback gira in modo seriale sul thread chiamante e riceve i tile in ordine row-major anche se i worker li completano in un ordine diverso

Ogni bitmap è presa in prestito solo per la durata dell'invocazione del callback e viene rilasciata subito dopo, quindi copiala o encodala dentro il callback se deve sopravvivere

Imposta Cancel per fermare le nuove richieste, svegliare i worker, rilasciare le bitmap non pubblicate e restituire il numero di callback consegnati

Il callback non deve modificare o distruggere il documento finché restano attivi dei worker

Memoria e condivisione

MaxWorkingBytes deve essere positivo e riduce il numero di worker partendo dalla più grande prenotazione conservativa di tile prima che il lavoro cominci

Ogni worker trattiene al massimo un tile attivo o completato, e lo scheduler del picco di memoria a livello di processo può ritardarlo ulteriormente in presenza di lavoro concorrente su altri documenti

I renderer paralleli condividono copie immutabili delle sequenze di token dei glyph Type 3 e degli schermi di soglia halftone tramite il budget limitato RendererSharedCacheMaxBytes

THPDFParallelTileRenderInfo · Display Lists and Print Production