Встановлення тайм-ауту при збереженні

Встановлення тайм-ауту при збереженні

Aspose.CAD для Java API дозволяє встановлювати тайм-аут при збереженні. Це може бути корисно в випадках, коли процес збереження займає багато часу або споживає багато пам’яті. Для цього API надає клас InterruptionTokenSource. Клас InterruptionTokenSource надає токен, який використовується для переривання тривалих операцій.

Приклад коду

Наступний фрагмент коду демонструє використання класу InterruptionTokenSource.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java
final String SourceDir = Utils.getDataDir_DWGDrawings();
final String OutputDir = Utils.getDataDir_Output();
final InterruptionTokenSource source = new com.aspose.cad.InterruptionTokenSource();
try {
final CadImage cadImageBig = (CadImage)Image.load(SourceDir + "Drawing11.dwg");
try {
CadRasterizationOptions rasterizationOptionsBig = new CadRasterizationOptions();
rasterizationOptionsBig.setPageWidth(cadImageBig.getSize().getWidth() / 2);
rasterizationOptionsBig.setPageHeight(cadImageBig.getSize().getHeight() / 2);
final PdfOptions CADfBig = new PdfOptions();
CADfBig.setVectorRasterizationOptions(rasterizationOptionsBig);
CADfBig.setInterruptionToken(source.getToken());
java.lang.Thread thread = new java.lang.Thread(new Runnable() {
@Override
public void run() {
try {
cadImageBig.save(OutputDir + "PutTimeoutOnSave_out.pdf", CADfBig);
} catch (Throwable th) {
System.out.println("interrupted !!!");
}
}
});
thread.start();
TimeUnit.SECONDS.sleep(3);
source.interrupt();
thread.join();
} finally {
cadImageBig.dispose();
}
} finally {
source.dispose();
}