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