Прерывание операции сохранения, зависающей

Класс ‘InterruptMonitor’ предоставляет возможность прерывать процесс сохранения документа, если он занимает слишком много времени. (https://reference.aspose.com/pdf/ru/net/aspose.pdf.multithreading/interruptmonitor/).

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

Использование InterruptMonitor

Позвольте нам выделить, что реализация включает несколько ключевых шагов:

  1. Создание InterruptMonitor: Создайте объект InterruptMonitor. Этот объект служит сигналом для прерывания потока.

  2. Назначение ThreadLocalInstance: Перед началом длительной операции Aspose.PDF назначьте экземпляр InterruptMonitor на InterruptMonitor.ThreadLocalInstance для текущего потока. Это связывает монитор с потоком.

  3. Выполнение потока: Выполните код, содержащий операцию Aspose.PDF (например, Document.Save()), в отдельном потоке.

  4. Сигнал прерывания: В подходящий момент (например, после таймаута или действия пользователя) вызовите monitor.Interrupt(). Это сигнализирует потоку о завершении.

  5. Обработка исключений: Метод Document.Save() выбрасывает OperationCanceledException, если прерван. Обработайте это исключение с помощью блока try-catch. Помните, что правильная обработка исключений имеет решающее значение для стабильности приложения.

Следующий фрагмент кода показывает, как использовать InterruptMonitor в обработке PDF.