Mrovqa Temat założony przez niniejszego użytkownika |
[urlmon.h] Przerwanie ściagania » 2012-01-16 20:17:16 Witam! Problem jest taki, że używam (w osobnym wątku): URLDownloadToFile() . Ona blokuje wątek. Wywołuje metodę IBindStatusCallback::OnProgress() . Ten interfejs trzeba odziedziczyć, ponieważ wszystkie metody są wirtualne (klasa abstrakcyjna). W tej metodzie mogę zakończyć wątek "na ostro". Pytanie: jest jakaś funkcja w tym interfejsie, która powoduje przerwanie ściągania? Problem jest w tym, że gdybym "na ostro" zakończył wątek, to funkcja prawdopodobnie nie zwolniłaby zaalokowanych zasobów. Pozdrawiam, Mrowqa |
|
DejaVu |
» 2012-01-16 21:19:12 A co jest napisane na temat metody OnProgress w MSDNie? |
|
Mrovqa Temat założony przez niniejszego użytkownika |
» 2012-01-18 17:42:47 Można zwrócić inną wartość (oznaczającą, że przysłane argumenty są błędne), ale to nie zakańcza ściągania. Inne metody także za bardzo nie pomagają... co ciekawe, funkcja po ściągnięciu pliku nie zwalnia pamięci (wywołuje sobie nowe wątki). Próbowałem zakończyć "na ostro" wątek - plik nie został utworzony, ale chyba ściągało dalej (przez dodatkowe wątki)... (testuje na 15MB pliku... dziwne, że ściąga go w kilka sekund (jak na moje łącze to trochę szybko)). Nie wiem też dlaczego, ale informacje o ściągniętych danych i tych do ściągnięcia podczas są 0/0, a dopiero po ściągnięciu dopiero jest znana wielkość pliku... (wcześniej normalnie wskazywało - ale tym się nie przejmuje :D). Tak możliwość przerwania ściągania nie jest mi niezbędna, jednak mimo to by się przydała :) /edit: Wiem, że 0/0 oznacza, że pobierany plik ma nieznaną wielkość, ale to mnie rozwaliło: Pobrano 933888 z 933888 Pobrano 950272 z 950272 Pobrano 983040 z 983040 Pobrano 999424 z 999424 Pobrano 1032192 z 1032192 Pobrano 1064960 z 1064960 Pobrano 1081344 z 1081344 Pobrano 1097728 z 1097728 Czemu maksymalna wartość pliku rośnie? Co to oznacza? W dokumentacji o tym nic nie znalazłem... Pozdrawiam, Mrowqa |
|
DejaVu |
» 2012-01-18 18:21:00 |
|
Mrovqa Temat założony przez niniejszego użytkownika |
» 2012-01-18 19:33:54 Yyyy... nie o to mi chodzi... jaki jest tego sens? Skoro rozmiar pliku jest nieznany (innej przyczyny nie widzę) to nie lepiej byłoby tam wstawić 0? Rozkojarzony jestem teraz... :/ |
|
DejaVu |
» 2012-01-18 19:39:01 Czemu maksymalna wartość pliku rośnie? Co to oznacza? W dokumentacji o tym nic nie znalazłem...
|
Sens masz wyjaśniony w dokumentacji.
Yyyy... nie o to mi chodzi... jaki jest tego sens? Skoro rozmiar pliku jest nieznany (innej przyczyny nie widzę) to nie lepiej byłoby tam wstawić 0? Rozkojarzony jestem teraz... :/
|
Jeżeli uważasz, że używasz głupiego narzędzia, a programiści, którzy to tworzyli to idioci, to napisz własne mechanizmy, które zaspokoją Twoje potrzeby. |
|
Mrovqa Temat założony przez niniejszego użytkownika |
» 2012-01-19 16:46:04 Chętnie bym napisał, gdybym tylko wiedział jak :P Póki co użyję tego... Dzięki |
|
« 1 » |