Progress

Progress

Tento průvodce ukazuje, jak sledovat průběh dlouhotrvajících operací načítání a ukládání dokumentů.

Dlouhotrvající operace načítání a ukládání mohou hlásit postupný průběh pomocí malého páru callbacků: IDocumentLoadingCallback pro načítání a IDocumentSavingCallback pro ukládání. Obě rozhraní mají stejnou strukturu — jedinou metodu Notify(args), kterou volá Aspose.Words FOSS pro .NET, jak operace postupuje.


Sledování načítání dokumentu

Implementujte IDocumentLoadingCallback a přiřaďte implementaci k LoadOptions.ProgressCallback před načtením dokumentu. Během načítání je Notify(args) voláno s instancí DocumentLoadingArgs, jejíž vlastnost EstimatedProgress (double) uvádí, jak daleko načítání pokročilo.


Sledování ukládání dokumentu

Implementujte IDocumentSavingCallback a přiřaďte jej k SaveOptions.ProgressCallback před voláním Document.Save(fileName, saveOptions) (nebo přetížením streamu). Během ukládání Notify(args) přijímá instanci DocumentSavingArgs, která obdobně poskytuje EstimatedProgress jako double.


Tipy a osvědčené postupy

  • DocumentLoadingArgs a DocumentSavingArgs jsou uzavřené třídy, jejichž jediným členem je EstimatedProgress — považujte hlášení postupu za lehký signál ve stylu procent pro zpětnou vazbu UI, nikoli podrobný protokol operace.
  • Nastavte ProgressCallback na instanci LoadOptions nebo SaveOptions před jejím předáním do Document(fileName, loadOptions) nebo Document.Save(fileName, saveOptions) — přiřazení později nemá žádný vliv na operaci, která již probíhá.
  • Použijte samostatnou implementaci callbacku pro načítání a pro ukládání; IDocumentLoadingCallback a IDocumentSavingCallback jsou odlišná rozhraní, i když obě vystavují jedinou metodu Notify(args).

Běžné problémy

ProblémPříčinaOprava
Notify(args) se nikdy nevoláProgressCallback nebyl nastaven na instanci LoadOptions/SaveOptions předané při volání load nebo savePřiřaďte ProgressCallback před voláním Document(fileName, loadOptions) nebo Document.Save(fileName, saveOptions)
Callback pro postup se kompiluje s nesprávným typem argumentuIDocumentLoadingCallback.Notify přijímá DocumentLoadingArgs; IDocumentSavingCallback.Notify přijímá DocumentSavingArgs — nejsou zaměnitelnéImplementujte rozhraní, které odpovídá operaci (načítání vs. ukládání)

FAQ

Co představuje EstimatedProgress?

Jedná se o vlastnost double na DocumentLoadingArgs (během načítání) nebo DocumentSavingArgs (během ukládání), která hlásí odhadovaný pokrok dokončení operace.

Mohu zrušit operaci načítání nebo ukládání z callbacku průběhu?

Notify(args) na obou rozhraních přijímá jen objekt arguments (DocumentLoadingArgs nebo DocumentSavingArgs); žádné z nich neodhaluje příznak zrušení v tomto API rozhraní.

Potřebuji samostatné třídy callbacku pro načítání a ukládání?

Potřebujete samostatné implementace IDocumentLoadingCallback a IDocumentSavingCallback respektive, protože se jedná o různá rozhraní, ačkoliv jedna třída může implementovat obě.


API Reference Shrnutí

Třída / RozhraníPopis:
IDocumentLoadingCallbackNotify(args) — implementace pro oznámení o průběhu načítání
IDocumentSavingCallbackNotify(args) — implementace pro oznámení o průběhu ukládání
DocumentLoadingArgsEstimatedProgress: double — předáno do IDocumentLoadingCallback.Notify
DocumentSavingArgsEstimatedProgress: double — předáno do IDocumentSavingCallback.Notify
LoadOptions.ProgressCallbackPřipojí IDocumentLoadingCallback k operaci načítání
SaveOptions.ProgressCallbackPřipojí IDocumentSavingCallback k operaci ukládání

Viz také:

 Čeština