Estoy utilizando el método DownloadFileAsync (en C#) de WebClient para descargar archivos de forma asincrónica. Tengo controladores de eventos adjuntos a DownloadProgressChanged y DownloadFileCompleted events. Esperaba ser notificado de cualquier error a través de la propiedad Error de AsyncCompletedEventArgs en el controlador de eventos DownloadFileCompleted. Funciona bien si la conexión no está presente antes de que comience la descarga. Craps out con el error apropiado y obtengo el error en la propiedad que mencioné anteriormente. Pero si la conexión se cae mientras la descarga está en progreso, no ocurre nada. El controlador de eventos no se llama, sigue esperando por siempre. ¿Qué debo hacer para manejar ese escenario? Gracias.detectando caídas de conexión mientras WebClient está descargando un archivo de forma asíncrona (en C#)
7
A
Respuesta
6
La mejor manera de hacer lo que está pidiendo es, probablemente, implementar su propio tiempo de espera para la llamada.
Básicamente, crea un temporizador que se restablece cada vez que se desencadena el evento DownloadProgressChanged. De esta forma, si no obtiene ninguna actualización de progreso dentro de su período de tiempo de espera, puede llamar al comando CancelAsync en el WebClient para que no espere por siempre.
Esa es la única forma en que he podido hacerlo.
Cuestiones relacionadas
- 1. Escribir en un archivo de forma asíncrona
- 2. ¿Cómo verificar si System.Net.WebClient.DownloadData está descargando un archivo binario?
- 3. ¿Cómo vaciar de forma asíncrona un archivo mapeado en memoria?
- 4. Obtener encabezados HTTP en la solicitud asíncrona de WebClient
- 5. ¿Cómo puedo monitorizar de forma asíncrona un archivo en Perl?
- 6. Mostrar un ícono de carga mientras se está descargando un recurso de red
- 7. C# Deshacerse del encabezado de conexión en WebClient
- 8. Descargar pdf de forma asíncrona
- 9. Detectando si la conexión a Internet está ocupada
- 10. Descargando un archivo grande - SDK de iPhone
- 11. Descargando un archivo csv en django
- 12. ¿Enviar correo electrónico de forma asíncrona en C#?
- 13. Descargando archivo de DataURL en JavaScript
- 14. Leyendo datos de un Archivo mientras está siendo escrito en
- 15. Cambiar BaudRate de SerialPort mientras la conexión está abierta
- 16. Cómo llamar a cualquier método de forma asíncrona en C#
- 17. Criando eventos de forma asíncrona
- 18. NIO - Detectando una conexión cerrada
- 19. Detectando si el diálogo de entrada de archivo está abierto
- 20. detectando cuando la ventana emergente "Descarga de archivo" está cerrada
- 21. .NET: ¿Debo mantener una referencia a WebClient mientras descargo de forma asincrónica?
- 22. Cómo mostrar la imagen de carga mientras se está descargando la imagen real
- 23. Vaciar un archivo mientras está en uso en Linux
- 24. C# Webclient de archivo continuo descarga de FTP para almacenamiento local
- 25. C# WebClient con https
- 26. Detectando la velocidad de conexión de red y el uso de ancho de banda en C#
- 27. Detectando si un navegador está en modo de pantalla completa
- 28. iPhone: Detectando un error de conexión con NSStream
- 29. Conexión asíncrona y desconexión con epoll (Linux)
- 30. Detectando un tipo de archivo mimetype en coldfusion que ya está cargado en el servidor
¿Puedes crear un registro de seguimiento de system.net de esto? Ver http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html sobre cómo hacer esto. Y publique el registro en pastebin.com y coloque el enlace aquí. Podemos echar un vistazo. A primera vista parece un error, pero el archivo de registro ayudará a depurar. – feroze