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)को पास करें — बाद में इसे असाइन करने से पहले से चल रहे ऑपरेशन पर कोई प्रभाव नहीं पड़ेगा।- लोडिंग और सेविंग के लिए अलग कॉलबैक इम्प्लीमेंटेशन का उपयोग करें;
IDocumentLoadingCallbackऔरIDocumentSavingCallbackअलग-अलग इंटरफ़ेस हैं जबकि दोनों एक हीNotify(args)मेथड प्रदान करते हैं।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
Notify(args) कभी कॉल नहीं किया जाता | ProgressCallback को लोड या सेव कॉल में पास किए गए LoadOptions/SaveOptions इंस्टेंस पर सेट नहीं किया गया | ProgressCallback को Document(fileName, loadOptions) या Document.Save(fileName, saveOptions) को कॉल करने से पहले असाइन करें |
| प्रोग्रेस कॉलबैक गलत तर्क प्रकार के विरुद्ध संकलित होता है | IDocumentLoadingCallback.Notify DocumentLoadingArgs लेता है; IDocumentSavingCallback.Notify DocumentSavingArgs लेता है — वे आपस में बदलने योग्य नहीं हैं | इंटरफ़ेस को लागू करें जो ऑपरेशन (लोडिंग बनाम सेविंग) से मेल खाता है |
FAQ
EstimatedProgress क्या दर्शाता है?
यह DocumentLoadingArgs (लोडिंग के दौरान) या DocumentSavingArgs (सेविंग के दौरान) पर एक double प्रॉपर्टी है जो ऑपरेशन की अनुमानित पूर्णता प्रोग्रेस रिपोर्ट करती है।
क्या मैं प्रोग्रेस कॉलबैक से लोड या सेव ऑपरेशन को रद्द कर सकता हूँ?
Notify(args) दोनों इंटरफेस पर केवल आर्गुमेंट्स ऑब्जेक्ट (DocumentLoadingArgs या DocumentSavingArgs) लेता है; इनमें से कोई भी इस API सतह में कैंसलेशन फ़्लैग नहीं दिखाता।
क्या मुझे लोडिंग और सेविंग के लिए अलग-अलग कॉलबैक क्लासेज़ की जरूरत है?
आपको क्रमशः IDocumentLoadingCallback और IDocumentSavingCallback के अलग-अलग इम्प्लीमेंटेशन चाहिए, क्योंकि वे अलग-अलग इंटरफ़ेस हैं, हालांकि एक ही क्लास दोनों को इम्प्लीमेंट कर सकता है।
API Reference सारांश
| Class / Interface | विवरण |
|---|---|
IDocumentLoadingCallback | Notify(args) — load-progress notifications के लिए लागू करें |
IDocumentSavingCallback | Notify(args) — save-progress notifications के लिए लागू करें |
DocumentLoadingArgs | EstimatedProgress: double — IDocumentLoadingCallback.Notify को पास किया गया |
DocumentSavingArgs | EstimatedProgress: double — IDocumentSavingCallback.Notify को पास किया गया |
LoadOptions.ProgressCallback | लोड ऑपरेशन में IDocumentLoadingCallback संलग्न करता है |
SaveOptions.ProgressCallback | सेव ऑपरेशन में IDocumentSavingCallback संलग्न करता है |