[]
AutoCloseable要使用 CancellationTokenSource:
getToken() 的返回值作为参数传入,将令牌附加到一个或多个操作。cancel() 取消关联的操作。此类实现 AutoCloseable,应与 try-with-resources 一起使用,以确保正确清理内部资源。
try (CancellationTokenSource cts = new CancellationTokenSource()) {
cts.cancelAfter(Duration.ofSeconds(10));
CancellationToken token = cts.getToken();
workbook.processTemplate(token);
} catch (Exception e) { }
voidcancel()voidcancelAfter(Duration delay) CancellationTokenSource 执行取消操作。voidclose()getToken()CancellationTokenSource 关联的令牌。假定 getToken() 的使用者会尽最大努力尝试执行取消。此方法会立即返回;如果取消成功,被取消的操作将抛出 CancellationException。
try (CancellationTokenSource cts = new CancellationTokenSource()) {
CancellationToken token = cts.getToken();
cts.cancel();
boolean cancellationRequested = token.isCancellationRequested();
}
CancellationTokenSource 执行取消操作。
try (CancellationTokenSource cts = new CancellationTokenSource()) {
cts.cancelAfter(Duration.ZERO);
CancellationToken token = cts.getToken();
}
delay - 取消此 CancellationTokenSource 之前等待的时间段。此值不能为 null。CancellationTokenSource 关联的令牌。
try (CancellationTokenSource cts = new CancellationTokenSource()) {
CancellationToken token = cts.getToken();
}
CancellationTokenSource cts = new CancellationTokenSource();
try {
cts.cancelAfter(Duration.ofSeconds(10));
workbook.processTemplate(cts.getToken());
} finally {
cts.close();
}
close in interface AutoCloseableException - 如果清理失败。