THotPDF.RenderLoadedPageTilesParallel Method

Renderuje kafelki jednej wczytanej strony na odizolowanych workerach, podczas gdy wątek wywołujący dostarcza pożyczone bitmapy w kolejności wierszowej

Deklaracja

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;

Strumieniowanie i własność

Callback działa szeregowo na wątku wywołującym i otrzymuje kafelki w kolejności wierszowej, nawet jeśli workery kończą je w innej kolejności

Każda bitmapa jest pożyczona tylko na czas wywołania callbacku i jest zwalniana bezpośrednio po jego powrocie, więc jeśli wynik ma przetrwać, skopiuj albo zakoduj go wewnątrz callbacku

Ustaw Cancel, żeby zatrzymać przyznawanie nowych zadań, obudzić workery, zwolnić nieopublikowane bitmapy i zwrócić liczbę dostarczonych wywołań callbacku

Callback nie może modyfikować ani niszczyć dokumentu, dopóki workery pozostają aktywne

Pamięć i współdzielenie

MaxWorkingBytes musi być dodatnie i redukuje liczbę workerów od największej konserwatywnej rezerwacji kafelka, zanim praca się zacznie

Każdy worker zatrzymuje najwyżej jeden aktywny albo ukończony kafelek, a działający w całym procesie scheduler szczytowej pamięci może dodatkowo opóźnić jego start przy konkurencji z inną pracą nad dokumentem

Rownoległe renderery współdzielą skopiowane niemutowalne sekwencje tokenów glifów Type 3 oraz ekrany progowe halftone w ramach ograniczonego budżetu RendererSharedCacheMaxBytes

THPDFParallelTileRenderInfo · Listy wyświetlania i produkcja poligraficzna