Отложенная отмена CancelAfter в C#
Метод CancelAfter планирует автоматическую отмену через указанный интервал.
Так задают предел ожидания и не заводят отдельный таймер вручную.
Поставим отмену через 1 мс и паузу на 500 мс. Пауза обрывается:
using CancellationTokenSource cts = new();
cts.CancelAfter(TimeSpan.FromMilliseconds(1));
try
{
await Task.Delay(500, cts.Token);
}
catch (OperationCanceledException)
{
Console.WriteLine("timeout"); // выведет "timeout"
}
Ограничьте ожидание ответа склада коротким сроком, саму паузу сделайте длиннее и выведите "aborted", если ответ не успел.