THotPDF.RenderLoadedPagesParallelOrdered Method

Компілює та рендерить завантажені сторінки одночасно, доставляючи завершені растрові зображення у вхідному порядку через обмежений зворотний виклик у викликальному потоці

Оголошення

function RenderLoadedPagesParallelOrdered(
    const PageIndices: array of Integer; DPI, MaxConcurrency,
    OutputQueueDepth: Integer; Callback: THPDFParallelRenderPageEvent): Integer; overload;

function RenderLoadedPagesParallelOrdered(
    const PageIndices: array of Integer; DPI, MaxConcurrency,
    OutputQueueDepth: Integer; Callback: THPDFParallelRenderPageEvent;
    out Info: THPDFParallelRenderPipelineInfo): Integer; overload;

Зворотний виклик і володіння

Callback виконується послідовно у викликальному потоці з позицією введення від нуля, запитуваним індексом сторінки, позиченим растровим зображенням і прапором скасування

Растрове зображення дійсне лише протягом зворотного виклику та вивільняється одразу після повернення зворотного виклику, тому копіюйте або кодуйте його всередині зворотного виклику, якщо результат має пережити цей виклик

Встановіть Cancel, щоб зупинити запит нових сторінок, розбудити заблокованих робітників, приєднатися до незавершеної роботи, вивільнити неопубліковані результати та повернути кількість завершених зворотних викликів

Скасування через зворотний виклик також розбуджує робітників, що чекають резервування пам'яті, не перетворюючи це внутрішнє розбудження на помилку; зовнішній токен скасування чи виняток у зворотному виклику все одно повідомляє про збій після прибирання

Протитиск

OutputQueueDepth обмежує завершені растрові зображення, включно з активним у зворотному виклику, значення нижче одиниці вибирають дієву кількість робітників, а значення вище кількості сторінок обмежуються

Планувальник резервує пропускну здатність виводу для наступної необхідної позиції введення, тому пізніші сторінки не можуть заповнити чергу й заблокувати впорядкований прогрес, коли раніша сторінка компілюється повільніше

З PeakMemorySchedulerEnabled запитуваний паралелізм зменшується від найбільшої оцінки сторінки та наявного загального бюджету, а кожне резервування сторінки лишається активним від запиту роботи до виходу позиченого растрового зображення зі зворотного виклику

Резервування пам'яті запитуються в порядку введення до паралельної компіляції та рендерингу, тож пізніші сторінки не можуть забрати бюджет, потрібний наступному зворотному виклику

Черговий вивід тому чесно конкурує з активною компіляцією та відтворенням за той самий загальнопроцесний бюджет, а скасування чи збій вивільняє неопубліковані резервування перед приєднанням до робітників

Зворотний виклик не повинен змінювати чи знищувати документ, поки робітники активні

THPDFParallelRenderPipelineInfo · Display Lists and Print Production