Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[urlmon.h] Przerwanie ściagania

Ostatnio zmodyfikowano 2012-01-19 16:46
Autor Wiadomość
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
P-48421
DejaVu
» 2012-01-16 21:19:12
A co jest napisane na temat metody OnProgress w MSDNie?
P-48441
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
P-48652
DejaVu
» 2012-01-18 18:21:00
Coś słabo czytasz dokumentację. Wszystko jest wyjaśnione w dokumentacji w opisie argumentów.
[MSDN] IBindStatusCallback::OnProgress Method

Note that this value might change across calls to this method.
P-48660
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... :/
P-48671
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.
P-48673
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
P-48757
« 1 »
  Strona 1 z 1