The async capabilities of WebClient
predate .Net 4.5, so it supports the Task-based Asynchronous Pattern only partially. That includes having its own cancellation mechanism: the CancelAsync()
method, which works even with the new -TaskAsync
methods. To call this method when a CancellationToken
is canceled, you can use its Register()
method:
cts.Token.Register(wc.CancelAsync);
As an alternative, you could use the new HttpClient
, as Stephen suggested, which fully supports TAP, including CancellationToken
s.