Progress
Progress
Den här guiden visar hur man spårar framstegen för långvariga dokumentläs- och sparoperationer.
Långvariga läs- och sparoperationer kan rapportera inkrementell framsteg via ett litet callback-par: IDocumentLoadingCallback för inläsning och IDocumentSavingCallback för sparning. Båda gränssnitten har samma form — en enda Notify(args)-metod som anropas av Aspose.Words FOSS för .NET när operationen fortskrider.
Övervakning av dokumentinläsning
Implementera IDocumentLoadingCallback och tilldela implementationen till LoadOptions.ProgressCallback innan ett dokument läses in. Under inläsning anropas Notify(args) med en DocumentLoadingArgs-instans vars EstimatedProgress-egenskap (en double) rapporterar hur långt inläsningen har kommit.
Övervakning av dokumentlagring
Implementera IDocumentSavingCallback och tilldela den till SaveOptions.ProgressCallback innan du anropar Document.Save(fileName, saveOptions) (eller ström-överladdningen). Under sparning mottar Notify(args) en DocumentSavingArgs-instans, som på samma sätt exponerar EstimatedProgress som en double.
Tips och bästa praxis
DocumentLoadingArgsochDocumentSavingArgsär förseglade klasser vars enda medlem ärEstimatedProgress— behandla framstegsrapportering som en lättviktig procentbaserad signal för UI-feedback, inte en detaljerad operationslogg.- Ställ in
ProgressCallbackpåLoadOptions- ellerSaveOptions-instansen innan du skickar den tillDocument(fileName, loadOptions)ellerDocument.Save(fileName, saveOptions)— att tilldela den efteråt har ingen effekt på en operation som redan pågår. - Använd en separat återuppringningsimplementation för inläsning respektive sparning;
IDocumentLoadingCallbackochIDocumentSavingCallbackär olika gränssnitt även om båda exponerar en endaNotify(args)-metod.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
Notify(args) anropas aldrig | ProgressCallback var inte satt på LoadOptions/SaveOptions-instansen som skickades till load- eller save-anropet | Tilldela ProgressCallback innan du anropar Document(fileName, loadOptions) eller Document.Save(fileName, saveOptions) |
| Progress callback kompileras mot fel argumenttyp | IDocumentLoadingCallback.Notify tar DocumentLoadingArgs; IDocumentSavingCallback.Notify tar DocumentSavingArgs — de är inte utbytbara | Implementera gränssnittet som matchar operationen (laddning vs. sparande) |
FAQ
Vad representerar EstimatedProgress?
Det är en double-egenskap på DocumentLoadingArgs (vid inläsning) eller DocumentSavingArgs (vid sparning) som rapporterar operationens uppskattade slutförande-framsteg.
Kan jag avbryta en laddnings- eller sparoperation från framstegskallbacken?
Notify(args) på båda gränssnitten tar endast argumentobjektet (DocumentLoadingArgs eller DocumentSavingArgs); ingen av dem exponerar en avbrytflagga i denna API yta.
Behöver jag separata callback-klasser för laddning och sparning?
Du behöver separata implementationer av IDocumentLoadingCallback respektive IDocumentSavingCallback, eftersom de är olika gränssnitt, även om en enda klass kan implementera båda.
API Reference Sammanfattning
| Klass / Gränssnitt | Beskrivning |
|---|---|
IDocumentLoadingCallback | Notify(args) — implementera för laddningsförloppsaviseringar |
IDocumentSavingCallback | Notify(args) — implementera för sparningsförloppsaviseringar |
DocumentLoadingArgs | EstimatedProgress: double — skickas till IDocumentLoadingCallback.Notify |
DocumentSavingArgs | EstimatedProgress: double — skickas till IDocumentSavingCallback.Notify |
LoadOptions.ProgressCallback | Bifogar en IDocumentLoadingCallback till en läsoperation |
SaveOptions.ProgressCallback | Bifogar en IDocumentSavingCallback till en sparaoperation |