-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來處理它的嗎? –