THotPDF.RenderLoadedPagesParallel Method

يُشكّل خط أنابيب لتجميع وتشغيل display-list عبر عدد محدود من العمال مع الحفاظ على ترتيب الإدخال في مصفوفة الإخراج

التصريح

function RenderLoadedPagesParallel(const PageIndices: array of Integer;
    DPI, MaxConcurrency: Integer; out Bitmaps: THPDFBitmapArray): Integer; overload;

function RenderLoadedPagesParallel(const PageIndices: array of Integer;
    DPI, MaxConcurrency: Integer; out Bitmaps: THPDFBitmapArray;
    out Info: THPDFParallelRenderPipelineInfo): Integer; overload;

السلوك

يعمل الترجيع (compilation) خارج قفل ذاكرة تخزين قائمة العرض المؤقتة، بحيث يمكن للصفحات غير ذات الصلة أن تُترجَم بشكل متزامن، ويمكن لأول صفحة جاهزة أن تبدأ التصيير قبل ترجمة مجموعة المُدخلات بأكملها

يوازن المجدول ديناميكيًا بين عمل التجميع والتشغيل، ويحدد عدد العمال عند MaxConcurrency، ويعزل حالة المُحرّر لكل عامل، ويشارك إدخالات ذاكرة التخزين المؤقت عبر عدادات استخدام محمية

عندما تكون PeakMemorySchedulerEnabled صحيحة، يُخفَّض عدد العمال الفعلي من الطلب المُطبَّع باستخدام أكبر تقدير لحجم صفحة والميزانية العالمية المتاحة حاليًا، ثم تحتفظ كل صفحة مُطالَب بها بحجزها العادل الخاص من الذاكرة طوال التجميع والتشغيل

الحمولة الزائدة المزوّدة بـ Info تُبلغ عن عدد العمال المطلوب والفعلي، وحد العمال المشتق من الذاكرة، وتقديرات حجز الصفحات، وذروة بايتات العرض المحجوزة، وحالات القبول في المجدول، والصفحات المؤجلة، ووقت الانتظار، وعدادات التجميع وإصابات ذاكرة التخزين المؤقت، والإخراج المكتمل، وذروة التزامن في كل مرحلة، وزمن وصول أول نتيجة، والوقت الإجمالي المنقضي، وعدد الصفحات التي جُمِّعت عند اكتمال أول bitmap

يمتلك المستدعي كل bitmap غير nil ضمن Bitmaps

تبقى نتائج المصفوفة المكتملة مملوكة للمستدعي بعد تحرير حجوزاتها قيد التنفيذ، لذا استخدم RenderLoadedPagesParallelOrdered عندما يجب أن تبقى مجموعة الإخراج الكاملة نفسها ضمن ميزانية المجدول

THPDFParallelRenderPipelineInfo · Display Lists and Print Production