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ésDocumentSavingArgslezárt osztályok, amelyek egyetlen tagja aEstimatedProgress— 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
ProgressCallbackaLoadOptionsvagySaveOptionspéldányon, mielőtt átadod aDocument(fileName, loadOptions)vagyDocument.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 aIDocumentSavingCallbackkülönálló interfészek, még akkor is, ha mindkettő egyetlenNotify(args)metódust tesz elérhetővé.
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
Notify(args) soha nem hívódik meg | ProgressCallback 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 le | IDocumentLoadingCallback.Notify DocumentLoadingArgs paramétert vár; IDocumentSavingCallback.Notify DocumentSavingArgs paramétert vár — ezek nem cserélhetők | Implementá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ész | Leírás |
|---|---|
IDocumentLoadingCallback | Notify(args) — implementáld a betöltés előrehaladásának értesítéseihez |
IDocumentSavingCallback | Notify(args) — implementáld a mentés előrehaladásának értesítéseihez |
DocumentLoadingArgs | EstimatedProgress: double — átadva a(z) IDocumentLoadingCallback.Notifynek |
DocumentSavingArgs | EstimatedProgress: double — átadva IDocumentSavingCallback.Notify |
LoadOptions.ProgressCallback | Csatol egy IDocumentLoadingCallback-t a betöltési művelethez |
SaveOptions.ProgressCallback | Csatol egy IDocumentSavingCallback-t a mentési művelethez |