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 ملخص
| فئة / واجهة | وصف |
|---|---|
IDocumentLoadingCallback | Notify(args) — تنفيذ لإشعارات تقدم التحميل |
IDocumentSavingCallback | Notify(args) — تنفيذ لإشعارات تقدم الحفظ |
DocumentLoadingArgs | EstimatedProgress: double — تم تمريره إلى IDocumentLoadingCallback.Notify |
DocumentSavingArgs | EstimatedProgress: double — تم تمريره إلى IDocumentSavingCallback.Notify |
LoadOptions.ProgressCallback | يُرفق IDocumentLoadingCallback بعملية تحميل |
SaveOptions.ProgressCallback | يُرفق IDocumentSavingCallback بعملية حفظ |