В клиенте очереди служебной шины Azure я использую метод ReceiveBatchAsync
для ожидания в течение заданного времени для асинхронного получения пакета сообщений.
var messages = await queueClient.ReceiveBatchAsync(10, TimeSpan.FromSeconds(30));
Я бы хотел, чтобы мое приложение было полностью завершено, поэтому я внедряю CancellationToken
во все мои длительные асинхронные процессы, но, похоже, нет перегрузки ReceiveBatchAsync
, которую можно было бы отменить.
Другими словами, я хотел бы сделать это, но я не могу:
var messages = await queueClient.ReceiveBatchAsync(10, TimeSpan.FromSeconds(30),
cancellationToken);
Как лучше всего применить CancellationToken
к такой задаче, которая не предлагает ее напрямую? Я не хочу ждать все 30 секунд во время выключения.