เมธอด THotPDF.RenderLoadedPageTilesParallel

เรนเดอร์ tile จากหน้าที่โหลดแล้วหนึ่งหน้าบน worker ที่แยกจากกัน ขณะที่ thread ผู้เรียกส่ง bitmap แบบยืมใช้ออกตามลำดับแถว-หลัก

การประกาศ

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 ทำงานแบบอนุกรมบน thread ของผู้เรียกและได้รับ tile เรียงตามลำดับแถว-หลัก แม้ worker จะทำเสร็จเป็นลำดับอื่นก็ตาม

bitmap แต่ละชิ้นถูกยืมใช้เฉพาะช่วงที่ callback ทำงานและถูกคืนทันทีหลังจากนั้น ดังนั้นถ้าต้องให้ผลอยู่ต่อ ให้ copy หรือ encode ภายใน callback

ตั้งค่า Cancel เพื่อหยุดการอ้างสิทธิ์งานใหม่ ปลุก worker คืน bitmap ที่ยังไม่ได้เผยแพร่ และคืนจำนวน callback ที่ส่งไปแล้ว

ห้าม callback แก้ไขหรือทำลายเอกสารขณะที่ worker ยังทำงานอยู่

หน่วยความจำและการแชร์

MaxWorkingBytes ต้องเป็นบวก และจะลดจำนวน worker ลงจากการจอง tile แบบอนุรักษ์นิยมที่ใหญ่ที่สุดก่อนเริ่มงาน

worker แต่ละตัวถือ tile ที่ active หรือเสร็จแล้วได้มากที่สุดหนึ่งชิ้น และ peak-memory scheduler ระดับ process สามารถหน่วงมันเพิ่มได้เมื่อมีงานเอกสารอื่นแย่งกัน

renderer แบบขนานแชร์ token sequence ของ Type 3 glyph แบบ immutable ที่ copy มาแล้วและ halftone threshold screen ผ่านงบประมาณ RendererSharedCacheMaxBytes แบบมีขอบเขต

THPDFParallelTileRenderInfo · Display Lists and Print Production