在Android .Net MAUI中,取消令牌不会抛出OperationCanceledException异常。相反,它会通过 CancellationToken.IsCancellationRequested 属性通知任务取消,然后我们需要手动抛出OperationCanceledException异常。
以下是一个示例代码,展示如何使用取消令牌并正确地抛出OperationCanceledException异常:
public async Task LongRunningOperation(CancellationToken token)
{
int counter = 0;
while(!token.IsCancellationRequested)
{
// Execute long running task
await Task.Delay(1000);
counter++;
}
// Throw OperationCanceledException to notify task cancellation
throw new OperationCanceledException(token);
}
在上面的代码中,在任务被取消时,我们调用了CancellationToken.ThrowIfCancellationRequested()方法来通知任务取消并抛出OperationCanceledException异常,以便我们可以捕获它并执行相应的处理操作。
使用此方法,我们可以正确地处理取消操作,并通过 OperationCanceledException 异常来通知相关任务被取消。