THotPDF.RenderLoadedPageTilesParallel Method

Renderiza tiles de uma página carregada em workers isolados, enquanto a thread chamadora entrega os bitmaps emprestados por ordem row-major

Declaração

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 posse

Callback é executado em série na thread chamadora e recebe os tiles por ordem de linhas, mesmo que os workers os concluam noutra ordem

Cada bitmap é emprestado apenas durante a invocação do callback e libertado imediatamente a seguir, por isso copie-o ou codifique-o dentro do callback quando ele tiver de sobreviver

Defina Cancel para deixar de reclamar trabalho novo, acordar os workers, libertar os bitmaps não publicados e devolver o número de callbacks entregues

O callback não pode mutar nem destruir o documento enquanto existirem workers ativos

Memória e partilha

MaxWorkingBytes tem de ser positivo e reduz o número de workers a partir da maior reserva conservadora de tiles antes de o trabalho começar

Cada worker retém no máximo um tile ativo ou concluído, e o agendador de pico de memória a nível do processo pode atrasá-lo ainda mais sob trabalho de documentos concorrente

Os renderizadores paralelos partilham sequências de tokens de glifos Type 3 imutáveis copiadas e ecrãs de limiar de meio-tom através do orçamento limitado RendererSharedCacheMaxBytes

THPDFParallelTileRenderInfo · Display Lists and Print Production