Progress
Progress
Panduan ini menunjukkan cara melacak kemajuan operasi pemuatan dan penyimpanan dokumen yang memakan waktu lama.
Operasi pemuatan dan penyimpanan yang memakan waktu lama dapat melaporkan kemajuan bertahap melalui sepasang callback kecil: IDocumentLoadingCallback untuk pemuatan dan IDocumentSavingCallback untuk penyimpanan. Kedua antarmuka memiliki bentuk yang sama — satu metode Notify(args) yang dipanggil oleh Aspose.Words FOSS untuk .NET seiring berjalannya operasi.
Memantau Pemuatan Dokumen
Implementasikan IDocumentLoadingCallback dan tetapkan implementasinya ke LoadOptions.ProgressCallback sebelum memuat dokumen. Selama pemuatan, Notify(args) dipanggil dengan sebuah instance DocumentLoadingArgs yang memiliki properti EstimatedProgress (sebuah double) yang melaporkan sejauh mana pemuatan telah berlangsung.
Memantau Penyimpanan Dokumen
Implementasikan IDocumentSavingCallback dan tetapkan ke SaveOptions.ProgressCallback sebelum memanggil Document.Save(fileName, saveOptions) (atau overload stream). Selama penyimpanan, Notify(args) menerima sebuah instance DocumentSavingArgs, yang juga mengekspos EstimatedProgress sebagai double.
Tips dan Praktik Terbaik
DocumentLoadingArgsdanDocumentSavingArgsadalah kelas sealed yang satu-satunya anggotanya adalahEstimatedProgress— perlakukan pelaporan kemajuan sebagai sinyal gaya persentase ringan untuk umpan balik UI, bukan log operasi yang terperinci.- Setel
ProgressCallbackpada instanceLoadOptionsatauSaveOptionssebelum meneruskannya keDocument(fileName, loadOptions)atauDocument.Save(fileName, saveOptions)— penetapan setelah itu tidak berpengaruh pada operasi yang sudah berjalan. - Gunakan implementasi callback terpisah untuk memuat versus menyimpan;
IDocumentLoadingCallbackdanIDocumentSavingCallbackadalah antarmuka yang berbeda meskipun keduanya mengekspos satu metodeNotify(args).
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
Notify(args) tidak pernah dipanggil | ProgressCallback tidak disetel pada instance LoadOptions/SaveOptions yang diberikan ke panggilan load atau save | Tetapkan ProgressCallback sebelum memanggil Document(fileName, loadOptions) atau Document.Save(fileName, saveOptions) |
| Callback kemajuan dikompilasi dengan tipe argumen yang salah | IDocumentLoadingCallback.Notify menerima DocumentLoadingArgs; IDocumentSavingCallback.Notify menerima DocumentSavingArgs — mereka tidak dapat dipertukarkan | Implementasikan antarmuka yang cocok dengan operasi (memuat vs. menyimpan) |
FAQ
Apa yang EstimatedProgress representasikan?
Ini adalah properti double pada DocumentLoadingArgs (saat memuat) atau DocumentSavingArgs (saat menyimpan) yang melaporkan perkiraan kemajuan penyelesaian operasi.
Apakah saya dapat membatalkan operasi load atau save dari callback progres?
Notify(args) pada kedua antarmuka hanya menerima objek argumen (DocumentLoadingArgs atau DocumentSavingArgs); keduanya tidak menampilkan flag pembatalan dalam permukaan API ini.
Apakah saya memerlukan kelas callback terpisah untuk loading dan saving?
Anda memerlukan implementasi terpisah dari IDocumentLoadingCallback dan IDocumentSavingCallback masing-masing, karena keduanya merupakan antarmuka yang berbeda, meskipun satu kelas dapat mengimplementasikan keduanya.
API Reference Ringkasan
| Kelas / Antarmuka | Deskripsi |
|---|---|
IDocumentLoadingCallback | Notify(args) — implement untuk notifikasi progres pemuatan |
IDocumentSavingCallback | Notify(args) — implement untuk notifikasi progres penyimpanan |
DocumentLoadingArgs | EstimatedProgress: double — diteruskan ke IDocumentLoadingCallback.Notify |
DocumentSavingArgs | EstimatedProgress: double — dilewatkan ke IDocumentSavingCallback.Notify |
LoadOptions.ProgressCallback | Melampirkan sebuah IDocumentLoadingCallback ke operasi pemuatan |
SaveOptions.ProgressCallback | Melampirkan IDocumentSavingCallback ke operasi penyimpanan |