Progress

Progress

このガイドでは、長時間実行されるドキュメントの読み込みおよび保存操作の進捗を追跡する方法を示します。

長時間実行される読み込みおよび保存操作は、小さなコールバックペアを通じて増分の進捗を報告できます: IDocumentLoadingCallback(読み込み用)と IDocumentSavingCallback(保存用)です。両方のインターフェースは同じ形状に従い、Aspose.Words FOSS が .NET のために呼び出す単一の Notify(args) メソッドです。


ドキュメント読み込みの監視

IDocumentLoadingCallback を実装し、ドキュメントを読み込む前にその実装を LoadOptions.ProgressCallback に割り当てます。読み込み中は、Notify(args) が DocumentLoadingArgs のインスタンスと共に呼び出され、そのインスタンスの EstimatedProgress プロパティ(double)が読み込みの進捗度合いを報告します。


ドキュメント保存の監視

IDocumentSavingCallback を実装し、Document.Save(fileName, saveOptions)(またはストリームのオーバーロード)を呼び出す前にそれを SaveOptions.ProgressCallback に割り当てます。保存中は、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 が load または save 呼び出しに渡された LoadOptions/SaveOptions インスタンスに設定されていませんProgressCallback を Document(fileName, loadOptions) または Document.Save(fileName, saveOptions) を呼び出す前に割り当ててください
進捗コールバックが誤った引数型でコンパイルされていますIDocumentLoadingCallback.Notify は DocumentLoadingArgs を受け取り、IDocumentSavingCallback.Notify は DocumentSavingArgs を受け取ります — それらは交換できません操作(loading vs. saving)に一致するインターフェースを実装する

FAQ

「EstimatedProgress」は何を表していますか?

これは、ロード時の DocumentLoadingArgs、または保存時の DocumentSavingArgs 上にある double プロパティで、操作の推定完了進捗を報告します。

プログレスコールバックからロードまたは保存操作をキャンセルできますか?

Notify(args)は両方のインターフェースで引数オブジェクト(DocumentLoadingArgsまたはDocumentSavingArgs)だけを受け取ります;このAPIの表面ではキャンセルフラグが公開されていません。

ロードと保存のために別々のコールバッククラスが必要ですか?

それらは異なるインターフェースであるため、IDocumentLoadingCallbackとIDocumentSavingCallbackのそれぞれに別々の実装が必要ですが、単一のクラスで両方を実装することも可能です。


API Reference の概要

クラス / インターフェース説明
IDocumentLoadingCallbackNotify(args) — ロード進行通知用に実装
IDocumentSavingCallbackNotify(args) — 保存進行通知用に実装
DocumentLoadingArgsEstimatedProgress: double — IDocumentLoadingCallback.Notify に渡される
DocumentSavingArgsEstimatedProgress: double — IDocumentSavingCallback.Notify に渡される
LoadOptions.ProgressCallbackロード操作に IDocumentLoadingCallback を添付します
SaveOptions.ProgressCallback保存操作に IDocumentSavingCallback を添付します

参照

 日本語