Учитывая CancellationToken, я хочу вызвать метод «отмена» для объекта, представляющего асинхронную операцию, когда CancellationToken отменяется. Это возможно?
Фон: я взаимодействую с API, который представляет асинхронную операцию следующим образом (более или менее):
class AsyncOp
{
void Start(Action callback);//returns 'immediately', while beginning an async op. Callback is called when the operation completes.
void Cancel();//aborts async operation and calls callback
}
Я могу достаточно легко обернуть это в метод Task DoAsyncOp()
, но я хочу поддерживать отмену, например Task DoAsyncOp(CancellationToken cancellationToken)
. В моем случае, когда CancellationToken отменяется, вызовите Cancel для объекта AsyncOp.