Progress

Progress

Acest ghid arată cum să monitorizați progresul operațiunilor de încărcare și salvare a documentelor care durează mult.

Operațiunile de încărcare și salvare de durată lungă pot raporta progres incremental printr-o pereche mică de callback-uri: IDocumentLoadingCallback pentru încărcare și IDocumentSavingCallback pentru salvare. Ambele interfețe au aceeași structură — o singură metodă Notify(args) invocată de Aspose.Words FOSS pentru .NET pe măsură ce operațiunea avansează.


Monitorizarea încărcării documentului

Implementați IDocumentLoadingCallback și atribuiți implementarea lui LoadOptions.ProgressCallback înainte de încărcarea unui document. În timpul încărcării, Notify(args) este apelat cu o instanță DocumentLoadingArgs a cărei proprietate EstimatedProgress (un double) raportează cât de mult a progresat încărcarea.


Monitorizarea salvării documentului

Implementați IDocumentSavingCallback și alocați-l lui SaveOptions.ProgressCallback înainte de invocarea lui Document.Save(fileName, saveOptions) (sau a variantei cu flux). În timpul salvării, Notify(args) primește o instanță DocumentSavingArgs, care, de asemenea, expune EstimatedProgress ca un double.


Sfaturi și bune practici

  • DocumentLoadingArgs și DocumentSavingArgs sunt clase sigilate al căror singur membru este EstimatedProgress — consideră raportarea progresului ca un semnal ușor, de tip procentual, pentru feedback UI, nu ca un jurnal detaliat al operației.
  • Setează ProgressCallback pe instanța LoadOptions sau SaveOptions înainte de a o transmite la Document(fileName, loadOptions) sau Document.Save(fileName, saveOptions) — atribuirea ulterioară nu are niciun efect asupra unei operații deja în desfășurare.
  • Folosește o implementare de callback separată pentru încărcare și pentru salvare; IDocumentLoadingCallback și IDocumentSavingCallback sunt interfețe distincte, deși ambele expun o singură metodă Notify(args).

Probleme comune

ProblemăCauzăRemediere
Notify(args) nu este niciodată apelatProgressCallback nu a fost setat pe instanța LoadOptions/SaveOptions transmisă apelului de încărcare sau salvareAlocați ProgressCallback înainte de a apela Document(fileName, loadOptions) sau Document.Save(fileName, saveOptions)
Callback-ul de progres se compilează cu tipul greșit de argumentIDocumentLoadingCallback.Notify primește DocumentLoadingArgs; IDocumentSavingCallback.Notify primește DocumentSavingArgs — nu sunt interschimbabileImplementează interfața care corespunde operației (încărcare vs. salvare)

FAQ

Ce reprezintă EstimatedProgress?

Este o proprietate double pe DocumentLoadingArgs (în timpul încărcării) sau DocumentSavingArgs (în timpul salvării) care raportează progresul estimat al finalizării operației.

Pot să anulez o operație de încărcare sau salvare din callback-ul de progres?

Notify(args) pe ambele interfețe acceptă doar obiectul arguments (DocumentLoadingArgs sau DocumentSavingArgs); niciuna nu expune un semnal de anulare în această suprafață API.

Trebuie să am clase de callback separate pentru încărcare și salvare?

Aveți nevoie de implementări separate ale IDocumentLoadingCallback și IDocumentSavingCallback respectiv, deoarece sunt interfețe diferite, deși o singură clasă ar putea implementa ambele.


API Reference Rezumat

Clasă / InterfațăDescriere:
IDocumentLoadingCallbackNotify(args) — implement pentru notificări de progres la încărcare
IDocumentSavingCallbackNotify(args) — implement pentru notificări de progres la salvare
DocumentLoadingArgsEstimatedProgress: double — transmis către IDocumentLoadingCallback.Notify
DocumentSavingArgsEstimatedProgress: double — transmis către IDocumentSavingCallback.Notify
LoadOptions.ProgressCallbackAtașează un IDocumentLoadingCallback la o operație de încărcare
SaveOptions.ProgressCallbackAtașează un IDocumentSavingCallback la o operație de salvare

Vezi și:

 Română