Progress

Progress

Este guia mostra como acompanhar o progresso de operações de carregamento e salvamento de documentos de longa duração.

Operações de carregamento e salvamento de longa duração podem relatar progresso incremental por meio de um pequeno par de callbacks: IDocumentLoadingCallback para carregamento e IDocumentSavingCallback para salvamento. Ambas as interfaces seguem o mesmo formato — um único método Notify(args) invocado por Aspose.Words FOSS para .NET à medida que a operação avança.


Monitoramento do Carregamento de Documentos

Implemente IDocumentLoadingCallback e atribua a implementação a LoadOptions.ProgressCallback antes de carregar um documento. Durante o carregamento, Notify(args) é chamado com uma instância DocumentLoadingArgs cuja propriedade EstimatedProgress (um double) relata até que ponto o carregamento progrediu.


Monitoramento do Salvamento de Documentos

Implemente IDocumentSavingCallback e atribua-o a SaveOptions.ProgressCallback antes de chamar Document.Save(fileName, saveOptions) (ou a sobrecarga de stream). Durante o salvamento, Notify(args) recebe uma instância DocumentSavingArgs, que também expõe EstimatedProgress como um double.


Dicas e Melhores Práticas

  • DocumentLoadingArgs e DocumentSavingArgs são classes seladas cujo único membro é EstimatedProgress — trate o relatório de progresso como um sinal leve no estilo percentual para feedback da UI, não como um registro detalhado da operação.
  • Defina ProgressCallback na instância de LoadOptions ou SaveOptions antes de passá-la para Document(fileName, loadOptions) ou Document.Save(fileName, saveOptions) — atribuí-la depois não tem efeito sobre uma operação já em andamento.
  • Use uma implementação de callback separada para carregamento versus salvamento; IDocumentLoadingCallback e IDocumentSavingCallback são interfaces distintas embora ambas exponham um único método Notify(args).

Problemas Comuns

ProblemaCausaCorreção
Notify(args) nunca é chamadoProgressCallback não foi definido na instância LoadOptions/SaveOptions passada para a chamada de load ou saveAtribua ProgressCallback antes de chamar Document(fileName, loadOptions) ou Document.Save(fileName, saveOptions)
O callback de progresso compila contra o tipo de argumento erradoIDocumentLoadingCallback.Notify recebe DocumentLoadingArgs; IDocumentSavingCallback.Notify recebe DocumentSavingArgs — eles não são intercambiáveisImplemente a interface que corresponde à operação (carregamento vs. salvamento)

FAQ

O que EstimatedProgress representa?

É uma propriedade double em DocumentLoadingArgs (durante o carregamento) ou DocumentSavingArgs (durante o salvamento) que relata o progresso estimado de conclusão da operação.

Posso cancelar uma operação de carregamento ou gravação a partir do callback de progresso?

Notify(args) em ambas as interfaces aceita apenas o objeto de argumentos (DocumentLoadingArgs ou DocumentSavingArgs); nenhum expõe uma bandeira de cancelamento nesta superfície API.

Preciso de classes de callback separadas para carregamento e gravação?

Você precisa de implementações separadas de IDocumentLoadingCallback e IDocumentSavingCallback, respectivamente, pois são interfaces diferentes, embora uma única classe possa implementar ambas.


API Reference Resumo

Classe / InterfaceDescrição
IDocumentLoadingCallbackNotify(args) — implementar para notificações de progresso de carregamento
IDocumentSavingCallbackNotify(args) — implementar para notificações de progresso de salvamento
DocumentLoadingArgsEstimatedProgress: double — passado para IDocumentLoadingCallback.Notify
DocumentSavingArgsEstimatedProgress: double — passed to IDocumentSavingCallback.Notify
LoadOptions.ProgressCallbackAnexa um IDocumentLoadingCallback a uma operação de carregamento
SaveOptions.ProgressCallbackAnexa um IDocumentSavingCallback a uma operação de salvamento

Ver também

 Português