Progress
Progress
Deze gids laat zien hoe je de voortgang van langdurige document laad- en opslagbewerkingen kunt volgen.
Langdurige laad- en opslagbewerkingen kunnen incrementele voortgang rapporteren via een klein callback-paar: IDocumentLoadingCallback voor het laden en IDocumentSavingCallback voor het opslaan. Beide interfaces volgen dezelfde vorm — een enkele Notify(args) methode aangeroepen door Aspose.Words FOSS voor .NET terwijl de bewerking vordert.
Documentladen monitoren
Implementeer IDocumentLoadingCallback en wijs de implementatie toe aan LoadOptions.ProgressCallback vóór het laden van een document. Tijdens het laden wordt Notify(args) aangeroepen met een DocumentLoadingArgs instantie waarvan de EstimatedProgress eigenschap (een double) rapporteert hoe ver het laden is gevorderd.
Documentopslaan monitoren
Implementeer IDocumentSavingCallback en wijs het toe aan SaveOptions.ProgressCallback vóór het aanroepen van Document.Save(fileName, saveOptions) (of de stream-overload). Tijdens het opslaan ontvangt Notify(args) een DocumentSavingArgs instantie, die eveneens EstimatedProgress blootlegt als een double.
Tips en best practices
DocumentLoadingArgsenDocumentSavingArgszijn sealed classes waarvan het enige lidEstimatedProgressis — behandel voortgangsrapportage als een lichtgewicht percentage-achtige signaal voor UI-feedback, niet als een gedetailleerd operationeel logboek.- Stel
ProgressCallbackin op deLoadOptionsofSaveOptionsinstantie voordat je deze doorgeeft aanDocument(fileName, loadOptions)ofDocument.Save(fileName, saveOptions)— het later toewijzen heeft geen effect op een al lopende bewerking. - Gebruik een aparte callback-implementatie voor laden versus opslaan;
IDocumentLoadingCallbackenIDocumentSavingCallbackzijn verschillende interfaces, hoewel beide een enkeleNotify(args)-methode blootstellen.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
Notify(args) wordt nooit aangeroepen | ProgressCallback is niet ingesteld op de LoadOptions/SaveOptions instantie die is doorgegeven aan de load- of save-aanroep | Wijs ProgressCallback toe voordat Document(fileName, loadOptions) of Document.Save(fileName, saveOptions) wordt aangeroepen |
| Progress-callback compileert tegen het verkeerde argumenttype | IDocumentLoadingCallback.Notify neemt DocumentLoadingArgs; IDocumentSavingCallback.Notify neemt DocumentSavingArgs — ze zijn niet onderling verwisselbaar | Implementeer de interface die overeenkomt met de bewerking (laden vs. opslaan) |
FAQ
Wat betekent EstimatedProgress?
Het is een double eigenschap op DocumentLoadingArgs (tijdens het laden) of DocumentSavingArgs (tijdens het opslaan) die de geschatte voltooiingsvoortgang van de bewerking rapporteert.
Kan ik een laad- of opslaan-bewerking annuleren vanuit de voortgangs-callback?
Notify(args) op beide interfaces neemt alleen het argumenten-object (DocumentLoadingArgs of DocumentSavingArgs); geen van beiden exposeert een annuleringsvlag in deze API oppervlakte.
Heb ik aparte callback-klassen nodig voor laden en opslaan?
Je hebt aparte implementaties van IDocumentLoadingCallback en IDocumentSavingCallback respectievelijk nodig, aangezien het verschillende interfaces zijn, hoewel één enkele klasse beide kan implementeren.
API Reference Samenvatting
| Klasse / Interface | Beschrijving |
|---|---|
IDocumentLoadingCallback | Notify(args) — implementeer voor laadvorderingsmeldingen |
IDocumentSavingCallback | Notify(args) — implementeer voor opslaan-voortgangsmeldingen |
DocumentLoadingArgs | EstimatedProgress: double — doorgegeven aan IDocumentLoadingCallback.Notify |
DocumentSavingArgs | EstimatedProgress: double — doorgegeven aan IDocumentSavingCallback.Notify |
LoadOptions.ProgressCallback | Voegt een IDocumentLoadingCallback toe aan een laadoperatie |
SaveOptions.ProgressCallback | Voegt een IDocumentSavingCallback toe aan een bewaaroperatie |