THotPDF.RenderLoadedPageTilesParallel Method

격리된 워커에서 한 로드 페이지의 tile을 렌더링하는 동안 호출 스레드가 빌린 비트맵을 row-major 순서로 전달합니다

선언

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;

스트리밍과 소유권

Callback은 호출 스레드에서 직렬로 실행되며, 워커가 다른 순서로 완성하더라도 tile은 row-major 순서로 전달됩니다

각 비트맵은 Callback 호출 동안에만 빌려 주는 것이고 그 직후 해제되므로, 결과를 남겨두려면 Callback 안에서 복사하거나 인코딩해야 합니다

Cancel을 설정하면 새 claim을 막고 워커를 깨워 공개되지 않은 비트맵을 해제한 뒤 전달된 Callback 개수를 반환합니다

워커가 활동하는 동안 Callback은 문서를 변경하거나 파괴해서는 안 됩니다

메모리와 공유

MaxWorkingBytes는 양수여야 하고, 작업이 시작되기 전에 가장 보수적인 tile 예약부터 워커 수를 줄입니다

각 워커는 활성 또는 완료 상태의 tile을 최대 하나만 유지하며, 프로세스 전체 peak-memory 스케줄러는 경쟁하는 문서 작업이 있으면 이를 더 지연시킬 수 있습니다

병렬 렌더러는 복사된 불변 Type 3 글리프 토큰 시퀀스와 halftone threshold screen을 RendererSharedCacheMaxBytes budget 범위 안에서 공유합니다

THPDFParallelTileRenderInfo · 디스플레이 리스트 및 인쇄 생산