У меня есть задача async и Task.Delay (время, токен) внутри этого. Я вызываю вызов этого метода из моего основного потока. Всякий раз, когда токен отмены является истинным, он разбивает мой основной поток. Мне нужно обработать/исключить исключения из Task.Delay(). Есть ли возможность?Подавить исключение из Task.Delay()
Фрагмент кода:
protected override async Task RunAsync(CancellationToken cancellationToken)
{
await StartHealthMonitorAsync(cancellationToken);
}
private async Task StartWorkAsync(CancellationToken cancellationToken)
{
var delaySpan = TimeSpan.FromMinutes(1);
while (!cancellationToken.IsCancellationRequested)
{
await Task.Delay(delaySpan, cancellationToken);
await someTask.DoWorkAsync(cancellationToken);
}
}
благодаря
_ «Мне нужно обрабатывать/исключать исключения из Task.Delay()» _ - вы на самом деле _try_ обрабатывали исключение? То есть ставить try/catch вокруг 'await'? Вот как вы это делаете. Если вы не можете заставить это работать, опубликуйте хороший [mcve], показывающий, как вы пытались это сделать, и объясните, что именно происходит, а не то, что вы хотите. –
Я попытался справиться с try/catch. но не получая исключения при передаче токена отмены как истинного. –
@JyothisTS, Можете ли вы показать, как вы пытались справиться с этим с помощью try/catch? –