Я бы порекомендовал создать источник токена отмены вне метода, который вы собираетесь использовать, и передать его, как Нил упоминал в своем комментарии.
Вот пример, показывающий, как вы можете это сделать, икак вы можете отменить его.
private async Task ParentAsync()
{
TimeSpan timeSpan = TimeSpan.FromMilliseconds(10000);
CancellationTokenSource cts = new CancellationTokenSource(timeSpan);
await ExecuteAsync(cts);
cts.Cancel(); // This will cause the execution to cancel.
}
private async Task ExecuteAsync(CancellationTokenSource cts)
{
await Task.Run(() =>
{
//This is a blocking call
Task.Delay(11002).Wait();
}, cts.Token);
}
Если вы хотите отменить выполнение родительского метода, выполните те же шаги, которые вы уже сделали для дочернего метода, используя токен для обработки отмены.задачи.
Надеюсь, это поможет!