دعم مكتبة قابلة للمقاطعة

نظرة عامة

توفر Aspose.Slides آلية معالجة قابلة للمقاطعة للمهام الطويلة الأمد الخاصة بالعروض التقديمية، مثل فك التسلسل، التسلسل، وعرض الرسومات. تستند هذه الآلية إلى الفئتين InterruptionToken و InterruptionTokenSource.

يمكن تعيين InterruptionToken إلى LoadOptions وتمريره إلى مُنشىء Presentation. عندما يتم استدعاء InterruptionTokenSource.interrupt، يتم مقاطعة المهمة الطويلة المرتبطة.

مكتبة قابلة للمقاطعة

توفر Aspose.Slides لـ Python عبر Java الفئتين InterruptionToken و InterruptionTokenSource. تتيح لكما مقاطعة المهام الطويلة مثل فك التسلسل، التسلسل، والعرض.

from concurrent.futures import ThreadPoolExecutor
import time

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import InterruptionTokenSource, LoadOptions, Presentation, SaveFormat


token_source = InterruptionTokenSource()


def convert_presentation():
    load_options = LoadOptions()
    load_options.setInterruptionToken(token_source.getToken())

    presentation = Presentation("sample.pptx", load_options)
    try:
        presentation.save("sample.ppt", SaveFormat.Ppt)
    finally:
        presentation.dispose()


with ThreadPoolExecutor(max_workers=1) as executor:
    conversion_task = executor.submit(convert_presentation)  # تشغيل الإجراء في خيط منفصل.
    time.sleep(10)  # انتهت المهلة.
    token_source.interrupt()  # إيقاف التحويل.
    conversion_task.result()

الأسئلة الشائعة

ما هو هدف مكتبة مقاطعة Aspose.Slides؟

توفر آلية لمقاطعة العمليات الطويلة — مثل تحميل العروض، حفظها، أو عرضها — قبل إكمالها. يكون ذلك مفيدًا عندما يجب تحديد وقت المعالجة أو عندما لا تكون المهمة مطلوبة بعد.

ما الفرق بين InterruptionToken و InterruptionTokenSource?

  • InterruptionToken يتم تمريره إلى API الخاص بـ Aspose.Slides ويتم فحصه أثناء العمليات الطويلة.
  • InterruptionTokenSource يُستخدم في التعليمات البرمجية الخاصة بك لإنشاء الرموز وتفعيل المقاطعة عن طريق استدعاء interrupt.

ما هي المهام التي يمكن مقاطعتها؟

يمكن مقاطعة أي مهمة من Aspose.Slides تقبل InterruptionToken — مثل تحميل عرض تقديمي باستخدام Presentation أو حفظه باستخدام Presentation.save —.

هل تحدث المقاطعة فورًا؟

لا. المقاطعة تعاونية: تقوم العملية بفحص الرمز بشكل دوري وتتوقف بمجرد اكتشاف أنه تم استدعاء interrupt.

ماذا يحدث إذا استدعيت interrupt بعد إكمال المهمة بالفعل؟

لا شيء — لا يؤثر الاستدعاء إذا كانت المهمة المعنية قد انتهت بالفعل.

هل يمكنني إعادة استخدام نفس InterruptionTokenSource لعدة مهام؟

نعم — ولكن بعد استدعاء interrupt على ذلك المصدر، ستُقطع جميع المهام التي تستخدم رموزه. استخدم مصادر رموز منفصلة لإدارة المهام بشكل مستقل.