Infelizmente, existem situações em que o aplicativo fica pendente durante o salvamento do documento e deixa de responder. Este recurso permite que você cancele operações de longa duração de forma elegante, como salvar documentos PDF grandes ou complexos, prevenindo congelamentos do aplicativo e melhorando a capacidade de resposta. Você encontrará as informações relevantes para integrar essa funcionalidade em seus aplicativos. Observe que essa abordagem garante que seu aplicativo permaneça responsivo mesmo durante operações que consomem muitos recursos.
O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.
Usando InterruptMonitor
Vamos destacar que a implementação envolve várias etapas-chave:
Criação do InterruptMonitor: Instancie um objeto InterruptMonitor. Este objeto atua como um sinal para a interrupção da thread.
Atribuição de ThreadLocalInstance: Antes de iniciar a operação de longa duração do Aspose.PDF, atribua a instância do InterruptMonitor a InterruptMonitor.ThreadLocalInstance para a thread atual. Isso vincula o monitor à thread.
Execução da Thread: Execute o código contendo a operação do Aspose.PDF (por exemplo, Document.Save()) dentro de uma thread separada.
Sinal de Interrupção: Em um ponto adequado (por exemplo, após um tempo limite ou ação do usuário), chame monitor.Interrupt(). Isso sinaliza a thread para terminar.
Tratamento de Exceções: O método Document.Save() lança uma OperationCanceledException se for interrompido. Trate essa exceção usando um bloco try-catch. Lembre-se de que o tratamento adequado de exceções é crucial para a estabilidade do aplicativo.
O seguinte trecho de código mostra como usar o InterruptMonitor no processamento de PDF.