Są różne sposoby na pobieranie plików, ale weźmy taki za pomocą WinInet, ładuje się do buforu ileś bajtów danych, przykładowo 1024 bajty i zapisuje się takimi paczkami to na dysku w pliku.
Czy gdybym chciał wprowadzić ograniczenie prędkości pobierania plików, to mam dla przykładu po każdej odebranej i zapisanej paczce 1 KBajtowej dać Sleep na ileś milisekund z w zależności z jaką prędkością chcę pobierać, czyli ma to wyglądać w stylu:
- ustawione jest ograniczenie prędkości 2 kilobajtów na sekundę
- bufor ma wielkość 1 KB
- pobieram 1 KB danych, zapisuję je
- tu walę Sleep na 500 milisekund, czyli w ciągu sekundy pętla wykona się dwa razy (czyli łącznie odbierze, zapisze dwa pakiety po 1 KB).
Czy tak to ma wyglądać? Oczywiście funkcja pobierania pliku byłaby w nowym wątku zrobiona, by sleep nie zamulał aplikacji.
Muszę wiedzieć, czy ten sposób pobierania jest dobry, bo nie chcę po roku przypadkowo dowiedzieć się, że epic fail zrobiłem i że tak się nie robi tego.