Progress

Progress

Ez az útmutató bemutatja, hogyan lehet nyomon követni a hosszú ideig futó dokumentum betöltési és mentési műveletek előrehaladását.

A hosszú ideig futó betöltési és mentési műveletek fokozatos előrehaladást jelenthetnek egy kis visszahívás-párral: IDocumentLoadingCallback a betöltéshez és IDocumentSavingCallback a mentéshez. Mindkét interfész ugyanazt a szerkezetet követi — egyetlen Notify(args) metódus, amelyet a Aspose.Words FOSS hív meg a .NET során, ahogy a művelet halad.


Dokumentum Betöltésének Figyelése

Valósítsd meg a IDocumentLoadingCallback elemet, és rendeld hozzá a LoadOptions.ProgressCallback implementációt a dokumentum betöltése előtt. Betöltés közben a Notify(args) egy DocumentLoadingArgs példánnyal hívódik meg, amelynek EstimatedProgress tulajdonsága (egy double) jelzi, mennyire haladt előre a betöltés.


Dokumentum Mentésének Figyelése

Valósítsd meg a IDocumentSavingCallback elemet, és rendeld hozzá a SaveOptions.ProgressCallback elemet a Document.Save(fileName, saveOptions) (vagy a stream túlterhelés) meghívása előtt. Mentés közben a Notify(args) egy DocumentSavingArgs példányt kap, amely szintén EstimatedProgress-t tesz elérhetővé double formájában.


Tippek és legjobb gyakorlatok

  • DocumentLoadingArgs és DocumentSavingArgs lezárt osztályok, amelyek egyetlen tagja a EstimatedProgress — kezeld a folyamatjelentést könnyű, százalékos jelként a UI visszajelzéshez, nem részletes műveletnaplóként.
  • Állítsd be a ProgressCallback a LoadOptions vagy SaveOptions példányon, mielőtt átadod a Document(fileName, loadOptions) vagy Document.Save(fileName, saveOptions) -nek — a későbbi beállítás nem befolyásolja a már folyamatban lévő műveletet.
  • Használj külön callback megvalósítást a betöltéshez és a mentéshez; a IDocumentLoadingCallback és a IDocumentSavingCallback különálló interfészek, még akkor is, ha mindkettő egyetlen Notify(args) metódust tesz elérhetővé.

Gyakori problémák

ProblémaOkJavítás
Notify(args) soha nem hívódik megProgressCallback nem lett beállítva a LoadOptions/SaveOptions példányon, amelyet a load vagy save hívás kapottÁllítsa be a ProgressCallback értékét a Document(fileName, loadOptions) vagy a Document.Save(fileName, saveOptions) hívása előtt
A progress callback a helytelen argumentumtípus ellen fordul leIDocumentLoadingCallback.Notify DocumentLoadingArgs paramétert vár; IDocumentSavingCallback.Notify DocumentSavingArgs paramétert vár — ezek nem cserélhetőkImplementáld azt az interfészt, amely a műveletnek (betöltés vs. mentés) megfelelő

FAQ

Mit jelent a EstimatedProgress?

Ez egy double tulajdonság a DocumentLoadingArgs (betöltés közben) vagy a DocumentSavingArgs (mentés közben), amely a művelet becsült befejezési előrehaladását jelzi.

Leállíthatom a betöltési vagy mentési műveletet a progress callbackből?

Notify(args) mindkét felületen csak az argumentum objektumot (DocumentLoadingArgs vagy DocumentSavingArgs) fogadja; egyik sem biztosít leállítási jelzőt ebben a API felületen.

Kell külön callback osztály a betöltéshez és a mentéshez?

Mindkettőhöz külön implementációkra van szükség: IDocumentLoadingCallback és IDocumentSavingCallback, mivel különböző interfészek, bár egyetlen osztály is megvalósíthatja mindkettőt.


API Reference összefoglaló

Osztály / InterfészLeírás
IDocumentLoadingCallbackNotify(args) — implementáld a betöltés előrehaladásának értesítéseihez
IDocumentSavingCallbackNotify(args) — implementáld a mentés előrehaladásának értesítéseihez
DocumentLoadingArgsEstimatedProgress: double — átadva a(z) IDocumentLoadingCallback.Notifynek
DocumentSavingArgsEstimatedProgress: double — átadva IDocumentSavingCallback.Notify
LoadOptions.ProgressCallbackCsatol egy IDocumentLoadingCallback-t a betöltési művelethez
SaveOptions.ProgressCallbackCsatol egy IDocumentSavingCallback-t a mentési művelethez

Lásd még:

 Magyar