Używam metody DownloadFileAsync (w języku C#) WebClient do asynchronicznego pobierania plików. Mam programy obsługi zdarzeń dołączone do zdarzeń DownloadProgressChanged i DownloadFileCompleted. Mam nadzieję, że otrzymam powiadomienie o wszelkich błędach za pośrednictwem właściwości Error AsyncCompletedEventArgs w procedurze obsługi zdarzenia DownloadFileCompleted. Działa dobrze, jeśli połączenie nie jest obecne przed rozpoczęciem pobierania. Fałszuje się z odpowiednim błędem i pojawia się błąd we właściwości, o której wspomniałem powyżej. Ale jeśli połączenie zostanie przerwane podczas pobierania, nic się nie dzieje. Program obsługi zdarzeń nie jest wywoływany, zawsze czeka na nie. Co powinienem zrobić, aby obsłużyć taki scenariusz? Dzięki.wykrywanie spadków połączenia, podczas gdy WebClient pobiera plik asynchronicznie (w języku C#)
7
A
Odpowiedz
6
Najlepszym sposobem na zrobienie tego, o co prosisz, jest prawdopodobnie wprowadzenie limitu czasu połączenia.
Zasadniczo utwórz zegar, który zostanie zresetowany za każdym razem, gdy zostanie wywołane zdarzenie DownloadProgressChanged. W ten sposób, jeśli nie otrzymasz żadnych aktualizacji postępu w ramach limitu czasu, możesz zadzwonić do polecenia CancelAsync w WebClient, aby nie czekać na zawsze.
To jedyny sposób, w jaki udało mi się to zrobić.
Powiązane problemy
- 1. Wykrywanie spadków na wykresie 2D
- 2. Wykrywanie połączenia przychodzącego iphone 5
- 3. Wykrywanie utraconego połączenia Java
- 4. „Wystąpił wyjątek podczas żądania WebClient” podczas korzystania z C# ASP.NET
- 5. dodać plik cookie do WebClient
- 6. Wykrywanie stanu połączenia w iOS4
- 7. NIO - Wykrywanie zamkniętego połączenia
- 8. wirtualnej spadków i jednolity inicjalizacji w C++
- 9. Wykrywanie zamknięcia połączenia HTTP w Railsach
- 10. ITransportHeartbeat.GetConnections() pobiera mi rozłączone połączenia
- 11. C# WebClient z https
- 12. Rozpakowywanie strumienia w języku C#
- 13. Jak wydrukować plik pcl w języku C#?
- 14. Wykrywanie i nagrywanie dźwięku w języku Python
- 15. Wykrywanie zamknięcia połączenia klienta w pliku node.js
- 16. C# WebClient logowanie do accounts.google.com
- 17. Jak odtwarzać plik mp3 w języku C++?
- 18. Zobacz plik docx w języku C# .NET
- 19. Utwórz plik .csv w języku C#
- 20. Jak skopiować plik w języku C#
- 21. Jak wykonać plik powłoki w języku C#?
- 22. Jak odczytać plik XML w języku C#?
- 23. W jaki sposób Mega pobiera plik?
- 24. Gevent-Websocket Wykrywanie zamkniętego połączenia
- 25. Wykrywanie kodowania ciągu znaków w C/C++
- 26. Atrybut spadków i odbicie
- 27. .NET Core pobiera ciąg połączenia z appsettings.json
- 28. Wyjątek COMException w języku C# podczas dołączania do zdarzenia
- 29. plik rozszerzenia apk nie pobiera z playstore
- 30. EntryPointNotFoundException podczas używania TaskDialog w języku C#
Czy można utworzyć rejestr śledzenia system.net tego? Zobacz http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html, jak to zrobić. I opublikuj dziennik na stronie pastebin.com i umieść link do logu tutaj. Możemy rzucić okiem. Na pierwszy rzut oka brzmi to jak błąd, ale plik logu pomoże w debugowaniu. – feroze