private async Task <IReadOnlyQueryResult> ExecuteSubscriptionQueryAsync( IExecutionContext executionContext, CancellationToken cancellationToken) { BatchOperationHandler batchOperationHandler = CreateBatchOperationHandler(executionContext); var requestTimeoutCts = new CancellationTokenSource( _options.ExecutionTimeout); try { using (var combinedCts = CancellationTokenSource .CreateLinkedTokenSource( requestTimeoutCts.Token, cancellationToken)) { IQueryResult result = await ExecuteQueryAsync( executionContext, batchOperationHandler, cancellationToken) .ConfigureAwait(false); return(result.AsReadOnly()); } } finally { batchOperationHandler?.Dispose(); requestTimeoutCts.Dispose(); } }