Хто тобі таке сказав що токеном не можна?
cancellation token после начала ожидания ничего не отменит, оно проверяет его 1 раз на старте Если нужно завершить сразу по триггеру то я бы сделал using var tcs = new TaskCompletionSource(); var token = tokenSource.Token; token.Register(() => tcs.TrySetResult()); await Task.WhenAny(Task.Delay(...), tcs.Task);
Щас чуть поменяю код
Обновил @Alex19948
якщо ти зробиш кенсел токену то він кине ексепшен в async void методі який буде unobservable, тому це і погано)
Значит без дженерика это статический класс, укажи какой-то условно <object>
тут не нужен using, потому что TaskCompletitionSource не реализует IDisposable
Я просто с головы писал
Обсуждают сегодня