Progress
Progress
این راهنما نشان میدهد چگونه پیشرفت عملیاتهای طولانیمدت بارگذاری و ذخیرهسازی سند را ردیابی کنیم.
عملیاتهای طولانیمدت بارگذاری و ذخیرهسازی میتوانند پیشرفت گام به گام را از طریق یک جفت فراخوانی کوچک گزارش دهند: IDocumentLoadingCallback برای بارگذاری و IDocumentSavingCallback برای ذخیرهسازی. هر دو رابط به همان شکل هستند — یک روش Notify(args) واحد که توسط Aspose.Words FOSS برای .NET در حین پیشرفت عملیات فراخوانی میشود.
پایش بارگذاری سند
روش IDocumentLoadingCallback را پیادهسازی کنید و قبل از بارگذاری یک سند، پیادهسازی را به LoadOptions.ProgressCallback اختصاص دهید. در طول بارگذاری، Notify(args) با یک نمونه DocumentLoadingArgs فراخوانی میشود که ویژگی EstimatedProgress آن (یک double) میزان پیشرفت بارگذاری را گزارش میدهد.
پایش ذخیرهسازی سند
روش IDocumentSavingCallback را پیادهسازی کنید و قبل از فراخوانی Document.Save(fileName, saveOptions) (یا نسخهٔ جریان) آن را به SaveOptions.ProgressCallback اختصاص دهید. در طول ذخیرهسازی، Notify(args) یک نمونهٔ DocumentSavingArgs دریافت میکند که به همان ترتیب EstimatedProgress را به عنوان یک double در دسترس قرار میدهد.
نکات و بهترین شیوهها
DocumentLoadingArgsوDocumentSavingArgsکلاسهای sealed هستند که تنها عضوشانEstimatedProgressاست — گزارش پیشرفت را به عنوان سیگنال سبک درصدی برای بازخورد UI در نظر بگیرید، نه یک لاگ عملیات دقیق.- مقدار
ProgressCallbackرا روی نمونهLoadOptionsیاSaveOptionsتنظیم کنید قبل از اینکه آن را بهDocument(fileName, loadOptions)یاDocument.Save(fileName, saveOptions)پاس بدهید — تخصیص آن پس از آن هیچ اثری بر عملیاتی که در حال اجراست ندارد. - از یک پیادهسازی جداگانهٔ callback برای بارگذاری و ذخیرهسازی استفاده کنید؛
IDocumentLoadingCallbackوIDocumentSavingCallbackرابطهای متمایزی هستند حتی اگر هر دو یک متدNotify(args)را ارائه دهند.
مسائل رایج
| مشکل | دلیل | رفع |
|---|---|---|
Notify(args) هرگز فراخوانی نمیشود | ProgressCallback بر روی نمونه LoadOptions/SaveOptions که به فراخوانی load یا save پاس داده شده تنظیم نشده بود | قبل از فراخوانی Document(fileName, loadOptions) یا Document.Save(fileName, saveOptions)، ProgressCallback را اختصاص دهید |
| کالبک پیشرفت با نوع آرگومان نادرست کامپایل میشود | IDocumentLoadingCallback.Notify DocumentLoadingArgs میگیرد؛ IDocumentSavingCallback.Notify DocumentSavingArgs میگیرد — آنها قابل تعویض نیستند | رابطی را پیادهسازی کنید که با عملیات (بارگذاری در مقابل ذخیرهسازی) مطابقت داشته باشد |
FAQ
EstimatedProgress چه معنایی دارد؟
این یک ویژگی double بر روی DocumentLoadingArgs (در حین بارگذاری) یا DocumentSavingArgs (در حین ذخیرهسازی) است که پیشرفت تخمینی تکمیل عملیات را گزارش میدهد.
آیا میتوانم عملیات بارگذاری یا ذخیرهسازی را از callback پیشرفت لغو کنم؟
Notify(args) در هر دو رابط فقط شیء آرگومانها (DocumentLoadingArgs یا DocumentSavingArgs) را میگیرد؛ هیچکدام در این سطح API پرچم لغو را نشان نمیدهند.
آیا برای بارگذاری و ذخیرهسازی به کلاسهای callback جداگانه نیاز دارم؟
شما به پیادهسازیهای جداگانهٔ 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 را به یک عملیات ذخیرهسازی الصاق میکند |