gpt4 book ai didi

xamarin.ios - 下载 Xamarin Forms 中的取消延迟

转载 作者:行者123 更新时间:2023-12-04 02:33:15 25 4
gpt4 key购买 nike

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

CancellationTokenSource Token= new CancellationTokenSource(); //Initialize a token while start download
webClient.DownloadFileTaskAsync(new Uri(downloadurl), saveLocation); // Download file

下载工作正常。为了取消正在进行的下载,我使用了下面链接中提到的取消 token 源。

https://docs.microsoft.com/en-us/dotnet/standard/threading/cancellation-in-managed-threads
Token.Cancel(); //Cancellation download

try
{
// check whether download cancelled or not
Token.ThrowIfCancellationRequested();
if(Token.IsCancellationRequested)
{
//Changed button visibility
}
}
catch (OperationCanceledException ex)
{
}

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

最佳答案

我们必须在下载异步进程之前将 token 注册到 webclient 取消异步进程。我们必须维持如下秩序,

//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 设备中都能正常工作。

关于xamarin.ios - 下载 Xamarin Forms 中的取消延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46925129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com