Progress
Progress
Dieser Leitfaden zeigt, wie man den Fortschritt von langlaufenden Dokument-Lade- und Speicheroperationen verfolgt.
Langlaufende Lade- und Speicheroperationen können den inkrementellen Fortschritt über ein kleines Callback-Paar melden: IDocumentLoadingCallback für das Laden und IDocumentSavingCallback für das Speichern. Beide Schnittstellen folgen derselben Form – eine einzelne Notify(args)-Methode, die von Aspose.Words FOSS für .NET aufgerufen wird, während die Operation fortschreitet.
Überwachung des Dokumentladens
Implementieren Sie IDocumentLoadingCallback und weisen Sie die Implementierung LoadOptions.ProgressCallback zu, bevor ein Dokument geladen wird. Während des Ladens wird Notify(args) mit einer DocumentLoadingArgs-Instanz aufgerufen, deren Eigenschaft EstimatedProgress (ein double) angibt, wie weit der Ladevorgang fortgeschritten ist.
Überwachung des Dokumentspeicherns
Implementieren Sie IDocumentSavingCallback und weisen Sie es SaveOptions.ProgressCallback zu, bevor Sie Document.Save(fileName, saveOptions) (oder die Stream-Überladung) aufrufen. Während des Speicherns erhält Notify(args) eine DocumentSavingArgs-Instanz, die ebenfalls EstimatedProgress als double bereitstellt.
Tipps und bewährte Verfahren
DocumentLoadingArgsundDocumentSavingArgssind versiegelte Klassen, deren einziges MitgliedEstimatedProgressist — behandeln Sie die Fortschrittsberichterstattung als ein leichtgewichtiges, prozentbasiertes Signal für UI-Feedback, nicht als detailliertes Operationsprotokoll.- Setzen Sie
ProgressCallbackauf dieLoadOptions- oderSaveOptions-Instanz, bevor Sie sie anDocument(fileName, loadOptions)oderDocument.Save(fileName, saveOptions)übergeben — ein nachträgliches Zuweisen hat keine Wirkung auf eine bereits laufende Operation. - Verwenden Sie für Laden und Speichern separate Callback-Implementierungen;
IDocumentLoadingCallbackundIDocumentSavingCallbacksind unterschiedliche Schnittstellen, obwohl beide eine einzigeNotify(args)-Methode bereitstellen.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
Notify(args) wird nie aufgerufen | ProgressCallback wurde nicht auf der LoadOptions/SaveOptions Instanz gesetzt, die dem Lade- oder Speicheraufruf übergeben wurde | Weisen Sie ProgressCallback zu, bevor Sie Document(fileName, loadOptions) oder Document.Save(fileName, saveOptions) aufrufen |
| Der Fortschritts-Callback wird gegen den falschen Argumenttyp kompiliert | IDocumentLoadingCallback.Notify nimmt DocumentLoadingArgs; IDocumentSavingCallback.Notify nimmt DocumentSavingArgs — sie sind nicht austauschbar | Implementieren Sie die Schnittstelle, die der Operation entspricht (Laden vs. Speichern) |
FAQ
Was stellt EstimatedProgress dar?
Es ist eine double-Eigenschaft von DocumentLoadingArgs (beim Laden) bzw. DocumentSavingArgs (beim Speichern), die den geschätzten Fortschritt der Operation meldet.
Kann ich einen Ladevorgang oder Speichervorgang über den Fortschritts-Callback abbrechen?
Notify(args) auf beiden Schnittstellen nimmt nur das Argumentobjekt (DocumentLoadingArgs oder DocumentSavingArgs) entgegen; keiner stellt ein Abbruch-Flag in dieser API-Oberfläche bereit.
Benötige ich separate Callback-Klassen für das Laden und Speichern?
Sie benötigen separate Implementierungen von IDocumentLoadingCallback bzw. IDocumentSavingCallback, da es sich um unterschiedliche Schnittstellen handelt, obwohl eine einzelne Klasse beide implementieren könnte.
API Reference Zusammenfassung
| Klasse / Schnittstelle | Beschreibung |
|---|---|
IDocumentLoadingCallback | Notify(args) — implementieren für Ladefortschrittsbenachrichtigungen |
IDocumentSavingCallback | Notify(args) — implementieren für Speicherfortschrittsbenachrichtigungen |
DocumentLoadingArgs | EstimatedProgress: double — übergeben an IDocumentLoadingCallback.Notify |
DocumentSavingArgs | EstimatedProgress: double — passed to IDocumentSavingCallback.Notify |
LoadOptions.ProgressCallback | Hängt ein IDocumentLoadingCallback an einen Ladevorgang an |
SaveOptions.ProgressCallback | Hängt ein IDocumentSavingCallback an einen Speichervorgang an |