[]
        
首页
开发者学堂
文档
论坛
市场
生态机会
活动
立即试用
(Showing Draft Content)

CancellationTokenSource

Class CancellationTokenSource

java.lang.Object
com.grapecity.documents.excel.CancellationTokenSource
All Implemented Interfaces:
AutoCloseable

public class CancellationTokenSource extends Object implements AutoCloseable
允许你向一个或多个操作发送取消请求。

要使用 CancellationTokenSource:

  1. 创建令牌源。
  2. 通过将 getToken() 的返回值作为参数传入,将令牌附加到一个或多个操作。
  3. 稍后,通过在此令牌源上调用 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) { }
 
  • Constructor Details

    • CancellationTokenSource

      public CancellationTokenSource()
  • Method Details

    • cancel

      public void cancel()
      启动取消请求。与此令牌关联的所有操作都将被取消。

      假定 getToken() 的使用者会尽最大努力尝试执行取消。此方法会立即返回;如果取消成功,被取消的操作将抛出 CancellationException。

      
       try (CancellationTokenSource cts = new CancellationTokenSource()) {
           CancellationToken token = cts.getToken();
           cts.cancel();
           boolean cancellationRequested = token.isCancellationRequested();
       }
       
    • cancelAfter

      public void cancelAfter(Duration delay)
      计划在指定时间段后对此 CancellationTokenSource 执行取消操作。
      
       try (CancellationTokenSource cts = new CancellationTokenSource()) {
           cts.cancelAfter(Duration.ZERO);
           CancellationToken token = cts.getToken();
       }
       
      Parameters:
      delay - 取消此 CancellationTokenSource 之前等待的时间段。此值不能为 null。
    • getToken

      public CancellationToken getToken()
      返回与此 CancellationTokenSource 关联的令牌。
      
       try (CancellationTokenSource cts = new CancellationTokenSource()) {
           CancellationToken token = cts.getToken();
       }
       
      Returns:
      取消令牌。始终返回同一个实例。
    • close

      public void close() throws Exception
      关闭资源并执行清理操作。
      
       CancellationTokenSource cts = new CancellationTokenSource();
       try {
           cts.cancelAfter(Duration.ofSeconds(10));
           workbook.processTemplate(cts.getToken());
       } finally {
           cts.close();
       }
       
      Specified by:
      close in interface AutoCloseable
      Throws:
      Exception - 如果清理失败。