Sto usando il metodo DownloadFileAsync di WebClient (in C#) per scaricare i file in modo asincrono. Ho gestori di eventi collegati agli eventi DownloadProgressChanged e DownloadFileCompleted. Speravo di ricevere notifiche di eventuali errori tramite la proprietà Error di AsyncCompletedEventArgs nel gestore di eventi DownloadFileCompleted. Funziona bene se la connessione non è presente prima che inizi il download. Scava con il giusto errore e ottengo l'errore nella proprietà che ho menzionato sopra. Ma se la connessione cade mentre il download è in corso non succede nulla. Il gestore eventi non viene chiamato, continua ad aspettare per sempre. Cosa devo fare per gestire questo scenario? Grazie.Rileva il collegamento cade mentre WebClient sta scaricando un file in modo asincrono (in C#)
7
A
risposta
6
Il modo migliore per fare ciò che stai chiedendo è probabilmente implementare il proprio timeout per la chiamata.
Fondamentalmente, creare un timer che viene reimpostato ogni volta che viene generato l'evento DownloadProgressChanged. In questo modo, se non ricevi aggiornamenti di avanzamento entro il tuo periodo di timeout, puoi chiamare il comando CancelAsync sul WebClient in modo da non dover aspettare per sempre.
Questo è l'unico modo in cui sono stato in grado di farlo.
Problemi correlati
- 1. Utilizzo di WebClient all'interno di ASP.NET MVC in modo asincrono?
- 2. .NET: Devo mantenere un riferimento a WebClient durante il download in modo asincrono?
- 3. Come svuotare in modo asincrono un file mappato in memoria?
- 4. db-oracle non sta scaricando dati
- 5. Rileva file letta in C#
- 6. Come leggere un file in modo asincrono?
- 7. Creazione di un file in modo asincrono
- 8. Rileva se la persona cade verso il basso
- 9. Perché il CTP asincrono sta funzionando male?
- 10. Modo corretto per convertire il metodo in asincrono in C#?
- 11. Scrittura su file in modo asincrono
- 12. Come posso monitorare un file in modo asincrono in Perl?
- 13. impossibile caricare il file utilizzando Ajax.BeginForm() in modo asincrono
- 14. Annullamento di un'attività che recupera gli URL in modo asincrono
- 15. Rileva il dispositivo sta vibrando?
- 16. Download file asincrono con barra di avanzamento
- 17. Modificatore asincrono in C#
- 18. Ottieni il nome file dopo che il filereader ha caricato in modo asincrono un file
- 19. C# elimina l'intestazione Connection in WebClient
- 20. POST'ing matrici in WebClient (C# /. Net)
- 21. C# WebClient con https
- 22. iOS: come verificare se UIViewControllers sta scaricando? (Swift)
- 23. Carica dati in un datagrid in modo asincrono
- 24. Perché Maven sta scaricando maven-metadata.xml ogni volta?
- 25. Imposta Thread.CurrentPrincipal in modo asincrono?
- 26. Perché Maven sta scaricando lo stesso artefatto più volte?
- 27. Xcode 7 si blocca mentre sta creando un nuovo file
- 28. Il modo più semplice per convertire un URL in un collegamento ipertestuale in una stringa C#?
- 29. Rileva se un VideoVisualizzazione sta effettuando il buffering
- 30. Rileva quando AVAudioSession sta "Ducked"
È possibile creare un registro di traccia system.net di questo? Vedi http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html su come farlo. E pubblica il registro su pastebin.com e metti il link al registro qui. Possiamo dare un'occhiata. A prima vista sembra un bug, ma il file di log aiuterà a eseguire il debug. – feroze