Próbuję napisać program w Visual Studio C# 2010 Express WindowsForms, który będzie ściągać skany rozdziałów z serwisu http://www.mangahere.com. Niestety pojawiły się problemy i sam nie wiem jak znaleźć rozwiązanie.
Problemy:
W czasie pracy okno przestaje reagować
Zainstalowana aplikacja się wysypuje, przy czym w samym IDE wszystko jest OK
Okno przestaje reagować, bo klasę HttpWebRequest wywołujesz synchronicznie, więc gui czeka na zakończenie wykonania metody GetResponse. Wyjściem z tego jest zastosowanie , metody request.BeginGetResponse(…), działa asynchronicznie i nie zablokuje gui, ale musisz podać delegat do metody wywoływanej po pobraniu odpowiedzi z serwera.
Możesz też wykorzystać obecną metodę:
korzystając z klasy BackgroundWorker
korzystając z klasy Thread
korzystając z klasy Task
Musisz tylko pamiętać, że odwołanie do gui z wątków innych niż główny, musi byc odpowiednio wywołane (metoda Invoke klasy Control).
Niestety nie udało mi się zreprodukować błędu. Próbowałem na dwóch różnych komputerach z różnymi systemami operacyjnymi, z poziomu VS, też po instalacji w systemie ClickOnce i za każdym razem u mnie działało poprawnie.