Progress
Progress
Hướng dẫn này chỉ cách theo dõi tiến độ của các thao tác tải và lưu tài liệu kéo dài.
Các thao tác tải và lưu kéo dài có thể báo cáo tiến độ tăng dần thông qua một cặp callback nhỏ: IDocumentLoadingCallback cho việc tải và IDocumentSavingCallback cho việc lưu. Cả hai giao diện đều có cùng dạng — một phương thức Notify(args) duy nhất được Aspose.Words FOSS cho .NET khi thao tác tiến triển.
Giám sát việc tải tài liệu
Triển khai IDocumentLoadingCallback và gán triển khai đó cho LoadOptions.ProgressCallback trước khi tải một tài liệu. Trong quá trình tải, Notify(args) được gọi với một thể hiện DocumentLoadingArgs mà thuộc tính EstimatedProgress của nó (một double) báo cáo mức độ tiến triển của quá trình tải.
Giám sát việc lưu tài liệu
Triển khai IDocumentSavingCallback và gán nó cho SaveOptions.ProgressCallback trước khi gọi Document.Save(fileName, saveOptions) (hoặc phiên bản overload cho stream). Trong quá trình lưu, Notify(args) nhận một thể hiện DocumentSavingArgs, mà cũng cung cấp EstimatedProgress dưới dạng double.
Mẹo và Thực hành Tốt nhất
DocumentLoadingArgsvàDocumentSavingArgslà các lớp sealed mà thành viên duy nhất của chúng làEstimatedProgress— coi việc báo cáo tiến độ như một tín hiệu nhẹ kiểu phần trăm để phản hồi UI, không phải là nhật ký chi tiết của hoạt động.- Đặt
ProgressCallbacktrên đối tượngLoadOptionshoặcSaveOptionstrước khi truyền nó choDocument(fileName, loadOptions)hoặcDocument.Save(fileName, saveOptions)— việc gán sau đó không ảnh hưởng tới một thao tác đã đang tiến hành. - Sử dụng một triển khai callback riêng biệt cho việc tải và lưu;
IDocumentLoadingCallbackvàIDocumentSavingCallbacklà các giao diện riêng biệt mặc dù cả hai đều cung cấp một phương thứcNotify(args)duy nhất.
Các Vấn đề Thông thường
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
Notify(args) không bao giờ được gọi | ProgressCallback chưa được đặt trên đối tượng LoadOptions/SaveOptions được truyền vào cuộc gọi load hoặc save | Gán ProgressCallback trước khi gọi Document(fileName, loadOptions) hoặc Document.Save(fileName, saveOptions) |
| Callback tiến độ được biên dịch với kiểu đối số sai | IDocumentLoadingCallback.Notify nhận DocumentLoadingArgs; IDocumentSavingCallback.Notify nhận DocumentSavingArgs — chúng không thể hoán đổi cho nhau | Triển khai giao diện phù hợp với thao tác (tải vs. lưu) |
FAQ
EstimatedProgress đại diện cho gì?
Đó là một thuộc tính double trên DocumentLoadingArgs (khi tải) hoặc DocumentSavingArgs (khi lưu) báo cáo tiến độ hoàn thành ước tính của thao tác.
Tôi có thể hủy thao tác tải hoặc lưu từ callback tiến trình không?
Notify(args) trên cả hai giao diện chỉ nhận đối tượng arguments (DocumentLoadingArgs hoặc DocumentSavingArgs); cả hai đều không cung cấp cờ hủy trong bề mặt API này.
Tôi có cần các lớp callback riêng biệt cho việc tải và lưu không?
Bạn cần các triển khai riêng biệt của IDocumentLoadingCallback và IDocumentSavingCallback tương ứng, vì chúng là các giao diện khác nhau, mặc dù một lớp duy nhất có thể triển khai cả hai.
API Reference Tóm tắt
| Lớp / Giao diện | Mô tả |
|---|---|
IDocumentLoadingCallback | Notify(args) — triển khai cho thông báo tiến độ tải |
IDocumentSavingCallback | Notify(args) — triển khai cho thông báo tiến độ lưu |
DocumentLoadingArgs | EstimatedProgress: double — được truyền cho IDocumentLoadingCallback.Notify |
DocumentSavingArgs | EstimatedProgress: double — được truyền cho IDocumentSavingCallback.Notify |
LoadOptions.ProgressCallback | Đính kèm một IDocumentLoadingCallback vào thao tác tải |
SaveOptions.ProgressCallback | Đính kèm một IDocumentSavingCallback vào thao tác lưu |