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 — розглядайте звітування про прогрес як легкий сигнал у відсотковому стилі для зворотного зв’язку UI, а не як детальний журнал операції.
  • Встановіть ProgressCallback на екземпляр LoadOptions або SaveOptions перед тим, як передати його до Document(fileName, loadOptions) або Document.Save(fileName, saveOptions) — призначення його пізніше не впливає на операцію, яка вже виконується.
  • Використовуйте окрему реалізацію зворотного виклику для завантаження та збереження; IDocumentLoadingCallback і IDocumentSavingCallback — різні інтерфейси, хоча обидва надають лише один метод Notify(args).

Типові проблеми

ПроблемаПричинаВиправлення
Notify(args) ніколи не викликаєтьсяProgressCallback не було встановлено в LoadOptions/SaveOptions екземплярі, переданому у виклик load або saveПризначте ProgressCallback перед викликом Document(fileName, loadOptions) або Document.Save(fileName, saveOptions)
Зворотний виклик прогресу компілюється проти неправильного типу аргументуIDocumentLoadingCallback.Notify приймає DocumentLoadingArgs; IDocumentSavingCallback.Notify приймає DocumentSavingArgs — вони не взаємозамінніРеалізуйте інтерфейс, який відповідає операції (завантаження vs. збереження)

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 до операції збереження

Дивіться також

 Українська