Progress
Progress
מדריך זה מראה כיצד לעקוב אחרי ההתקדמות של פעולות טעינה ושמירה של מסמכים ארוכות זמן.
פעולות טעינה ושמירה ארוכות זמן יכולות לדווח על התקדמות הדרגתית באמצעות זוג קריאות חזרה קטן: IDocumentLoadingCallback לטעינה ו-IDocumentSavingCallback לשמירה. שני הממשקים פועלים באותו הצורה — מתודה יחידה של Notify(args) שמוזמנת על ידי Aspose.Words FOSS עבור .NET ככל שהפעולה מתקדמת.
מעקב אחרי טעינת מסמך
מממשים את IDocumentLoadingCallback ומקצים את המימוש ל-LoadOptions.ProgressCallback לפני טעינת מסמך. במהלך הטעינה, Notify(args) נקראת עם מופע של DocumentLoadingArgs שהמאפיין EstimatedProgress שלו (double) מדווח עד כמה הטעינה התקדמה.
מעקב אחרי שמירת מסמך
מממשים את IDocumentSavingCallback ומקצים אותו ל-SaveOptions.ProgressCallback לפני קריאת Document.Save(fileName, saveOptions) (או את העומס על הזרם). במהלך השמירה, Notify(args) מקבל מופע של DocumentSavingArgs, שגם הוא חושף את EstimatedProgress כ-double.
טיפים ושיטות מיטביות
DocumentLoadingArgsו-DocumentSavingArgsהן מחלקות סגורות שהחבר היחיד שלהן הואEstimatedProgress— יש להתייחס לדיווח התקדמות כאות קל משקל בסגנון אחוזים למשוב UI, ולא כקובץ יומן פעולה מפורט.- הגדר את
ProgressCallbackעל המופע שלLoadOptionsאוSaveOptionsלפני העברתו ל-Document(fileName, loadOptions)אוDocument.Save(fileName, saveOptions)— הקצאה לאחר מכן אינה משפיעה על פעולה שכבר בעיצומה. - השתמש במימוש callback נפרד לטעינה לעומת שמירה;
IDocumentLoadingCallbackו-IDocumentSavingCallbackהן ממשקים נפרדים למרות ששניהם מציגים שיטה יחידה שלNotify(args).
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
Notify(args) לעולם לא נקרא | ProgressCallback לא הוגדר על המופע של LoadOptions/SaveOptions שהועבר לקריאה של load או save | הקצה את ProgressCallback לפני קריאה ל-Document(fileName, loadOptions) או Document.Save(fileName, saveOptions) |
| ה-callback של ההתקדמות מתקמפל כנגד סוג ארגומנט שגוי | IDocumentLoadingCallback.Notify מקבל DocumentLoadingArgs; IDocumentSavingCallback.Notify מקבל DocumentSavingArgs — הם אינם ניתנים להחלפה | מימוש הממשק שמתאים לפעולה (טעינה מול שמירה) |
FAQ
מה מייצג EstimatedProgress?
זהו נכס double ב-DocumentLoadingArgs (בזמן טעינה) או ב-DocumentSavingArgs (בזמן שמירה) המדווח על ההתקדמות המשוערת של השלמת הפעולה.
האם אני יכול לבטל פעולה של טעינה או שמירה מהקריאה חזרה של ההתקדמות?
Notify(args) בשתי הממשקים מקבל רק את אובייקט הפרמטרים (DocumentLoadingArgs או DocumentSavingArgs); אף אחד מהם לא חושף דגל ביטול במשטח API הזה.
האם אני צריך מחלקות קריאה חזרה נפרדות לטעינה ולשמירה?
אתה צריך מימושים נפרדים של IDocumentLoadingCallback ושל IDocumentSavingCallback בהתאמה, מכיוון שמדובר בממשקים שונים, למרות שמחלקה אחת יכולה לממש את שניהם.
API Reference סיכום
| מחלקה / ממשק | תיאור |
|---|---|
IDocumentLoadingCallback | Notify(args) — מימוש עבור התראות התקדמות טעינה |
IDocumentSavingCallback | Notify(args) — מימוש עבור התראות התקדמות שמירה |
DocumentLoadingArgs | EstimatedProgress: double — נשלח ל IDocumentLoadingCallback.Notify |
DocumentSavingArgs | EstimatedProgress: double — נמסר ל IDocumentSavingCallback.Notify |
LoadOptions.ProgressCallback | מחבר IDocumentLoadingCallback לפעולת טעינה |
SaveOptions.ProgressCallback | מחבר IDocumentSavingCallback לפעולת שמירה |