-1
我有一个异步任务和一个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_处理异常?即在“await”周围放置try/catch?这就是你如何做到的。如果你无法做到这一点,请发布一个很好的[mcve],展示你如何尝试去做,并解释发生了什么,而不是你想要的。 –
我试着用try/catch来处理。但在将取消标记传递为true时不会收到异常。 –
@JyothisTS,你能告诉我你是如何试图用try/catch来处理它的吗? –