Xamarin.ios 下载Xamarin表单中的取消延迟

Xamarin.ios 下载Xamarin表单中的取消延迟,xamarin.ios,xamarin.forms,xamarin.android,cancellationtokensource,downloadfileasync,Xamarin.ios,Xamarin.forms,Xamarin.android,Cancellationtokensource,Downloadfileasync,我需要下载一个pdf文件并保存在设备中。我使用WebClient进程下载文件,并在下载时显示进度 CancellationTokenSource Token= new CancellationTokenSource(); //Initialize a token while start download webClient.DownloadFileTaskAsync(new Uri(downloadurl), saveLocation); // Download file 下载工作正常。为了取

我需要下载一个pdf文件并保存在设备中。我使用WebClient进程下载文件,并在下载时显示进度

CancellationTokenSource Token= new CancellationTokenSource(); //Initialize a token while start download
webClient.DownloadFileTaskAsync(new Uri(downloadurl), saveLocation); // Download file
下载工作正常。为了取消正在进行的下载,我使用了下面链接中提到的cancellationtokensource


取消下载需要更多的时间。您能建议我减少取消下载的延迟吗?

我们必须在下载异步进程之前将令牌注册到webclient cancel async进程。我们必须维持如下秩序

//Initialize for download process
WebClient webClient = new WebClient();
CancellationTokenSource token = new CancellationTokenSource();

//register token into webclient
token.Register(webClient.CancelAsync);
try
{
  webClient.DownloadFileTaskAsync(new Uri(downloadurl), saveLocation); // Download a file
}
catch(Exception ex)
{
  //Change button visibility
}

Token.Cancel(); //Cancellation download put in cancel click button event

它甚至不需要几毫秒,而且在Xamarin.Android和Xamarin.iOS设备上取消都可以正常工作。

您能发布取消下载任务的完整代码吗?
//Initialize for download process
WebClient webClient = new WebClient();
CancellationTokenSource token = new CancellationTokenSource();

//register token into webclient
token.Register(webClient.CancelAsync);
try
{
  webClient.DownloadFileTaskAsync(new Uri(downloadurl), saveLocation); // Download a file
}
catch(Exception ex)
{
  //Change button visibility
}

Token.Cancel(); //Cancellation download put in cancel click button event