4

pdf 파일을 다운로드하고 장치에 저장해야합니다. WebClient 프로세스를 사용하여 파일을 다운로드하고 다운로드하는 동안 진행 상황을 보여줍니다.Xamarin Forms에서 취소 지연 다운로드

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

다운로드가 제대로 작동합니다. 진행중인 다운로드를 취소하려면 아래 링크에서 언급 한대로 cancellationtokensource를 사용했습니다.

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) 
{ 
} 

그것은 다운로드를 취소하기 위해 더 많은 초 정도 걸립니다. 다운로드 취소의 지연을 줄여 줄 것을 권해 주시겠습니까?

+0

다운로드 작업을 취소하는 전체 코드를 게시 하시겠습니까? –

답변

0

downloadasync 프로세스 전에 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 장치에서 잘 작동도 밀리 초 및 취소를 필요하지 않습니다, 아래와 같은 순서를 유지해야합니다.

관련 문제