Progress

Progress

يوضح هذا الدليل كيفية تتبع تقدم عمليات تحميل وحفظ المستند طويلة الأمد.

يمكن لعمليات التحميل والحفظ طويلة الأمد أن تُبلغ عن التقدّم التدريجي عبر زوج صغير من استدعاءات الرجوع: IDocumentLoadingCallback للتحميل وIDocumentSavingCallback للحفظ. كلا الواجهتين تتبعان نفس الشكل — طريقة Notify(args) واحدة تُستدعى بواسطة Aspose.Words FOSS لـ .NET مع تقدم العملية.


مراقبة تحميل المستند

نفّذ IDocumentLoadingCallback وعيّن التنفيذ إلى LoadOptions.ProgressCallback قبل تحميل المستند. أثناء التحميل، يُستدعى Notify(args) مع كائن DocumentLoadingArgs تكون خاصية EstimatedProgress الخاصة به (وهي double) تُبلغ عن مدى تقدّم التحميل.


مراقبة حفظ المستند

نفّذ IDocumentSavingCallback وعيّنه إلى SaveOptions.ProgressCallback قبل استدعاء Document.Save(fileName, saveOptions) (أو النسخة المتدفقة). أثناء الحفظ، يتلقى Notify(args) كائن DocumentSavingArgs، والذي بدوره يُظهر EstimatedProgress كـ double.


نصائح وأفضل الممارسات

  • DocumentLoadingArgs وDocumentSavingArgs هما فئتان مغلقتان عضوهما الوحيد هو EstimatedProgress — اعتبر تقارير التقدم إشارة خفيفة النمط بنسبة مئوية لتغذية الواجهة الرسومية، وليس سجلاً تفصيليًا للعمليات.
  • قم بتعيين ProgressCallback على كائن LoadOptions أو SaveOptions قبل تمريره إلى Document(fileName, loadOptions) أو Document.Save(fileName, saveOptions) — التعيين لاحقًا لا يؤثر على عملية قيد التنفيذ.
  • استخدم تنفيذًا منفصلًا للنداء العكسي للتحميل مقابل الحفظ؛ IDocumentLoadingCallback وIDocumentSavingCallback هما واجهتان مميزتان رغم أن كلاهما يقدم طريقة واحدة Notify(args).

المشكلات الشائعة

المشكلةالسببالإصلاح
Notify(args) لا يتم استدعاؤه أبداًProgressCallback لم يتم تعيينه على مثيل LoadOptions/SaveOptions الممرَّر إلى استدعاء التحميل أو الحفظعيّن ProgressCallback قبل استدعاء Document(fileName, loadOptions) أو Document.Save(fileName, saveOptions)
دالة الاسترجاع للتقدم تُجمع مع نوع المعامل غير الصحيحIDocumentLoadingCallback.Notify يأخذ DocumentLoadingArgs؛ IDocumentSavingCallback.Notify يأخذ DocumentSavingArgs — ليسا قابلين للتبادلنفّذ الواجهة التي تتطابق مع العملية (التحميل مقابل الحفظ)

FAQ

ماذا يمثل EstimatedProgress؟

إنها خاصية double على DocumentLoadingArgs (أثناء التحميل) أو DocumentSavingArgs (أثناء الحفظ) التي تقرّب تقدم إكمال العملية.

هل يمكنني إلغاء عملية التحميل أو الحفظ من رد النداء الخاص بالتقدم؟

Notify(args) على كلا الواجهتين يأخذ فقط كائن الوسائط (DocumentLoadingArgs أو DocumentSavingArgs); ولا يكشف أي منهما عن علم إلغاء في هذا API السطح.

هل أحتاج إلى فئات رد نداء منفصلة للتحميل والحفظ؟

تحتاج إلى تطبيقات منفصلة لـ IDocumentLoadingCallback و IDocumentSavingCallback على التوالي، لأنها واجهات مختلفة، رغم أن فئة واحدة يمكنها تنفيذ كليهما.


API Reference ملخص

فئة / واجهةوصف
IDocumentLoadingCallbackNotify(args) — تنفيذ لإشعارات تقدم التحميل
IDocumentSavingCallbackNotify(args) — تنفيذ لإشعارات تقدم الحفظ
DocumentLoadingArgsEstimatedProgress: double — تم تمريره إلى IDocumentLoadingCallback.Notify
DocumentSavingArgsEstimatedProgress: double — تم تمريره إلى IDocumentSavingCallback.Notify
LoadOptions.ProgressCallbackيُرفق IDocumentLoadingCallback بعملية تحميل
SaveOptions.ProgressCallbackيُرفق IDocumentSavingCallback بعملية حفظ

انظر أيضاً

 العربية