Pobieranie stron w określonej liczbie wątków.

0

Witam
Piszę aplikację, której jedną z funkcji jest pobranie kodu źródłowego stron.
Program pobiera listę stron oraz listę proxy z dwóch plików .txt. Następnie tworzy jeden wątek (chciałbym aby tworzył określoną liczbę wątków), a w nim pobiera za pomocą cURL'a kod źródłowy stron (pierwszy adres proxy na wszystkie linki, później drugi adres proxy na wszystkie linki i tak dalej...). To działa.

Nie wiem jednak w jaki sposób pobierać kod źródłowy za pomocą większej ilości wątków niż jeden. Trzeba w jakiś sposób obliczyć ilość adresów proxy przypadających na jeden wątek. Na przykład w pliku proxy.txt mam listę 10 adresów proxy. Utworzyłem też 5 wątków. Na jeden wątek przypada 10/5 = 2 adresy proxy. Jednak jeśli będę miał np 77 adresów proxy i 30 wątków, to na jeden wątek będzie przypadać po 2 adresy - co z pozostałymi 17?

Na razie zaimplementowałem metodę, która działa tylko na 1 wątku:

for (int i = 0; i < _listaProxy.Length; ++i) // po jednym adresie proxy
            {
                for (int j = 0; j < _listaLinkow.Length; ++j) // przez wszystkie linki z jednym adresem proxy
                {
                    _obj.WejdzNaStrone(_listaLinkow[j], _listaProxy[i], Convert.ToInt32(this.nudTimeout.Value)); // wchodzi na stronę
                }
            }

To nie jest cały kod. Zostały tylko najważniejsze "rzeczy".

Nie mam pojęcia co zrobić, by metoda była wykonywana np w 30 wątkach, a każdy wątek wykonywałby inny/inne adres/y proxy, z zastrzeżeniem by wszystkie adresy proxy zostały wykorzystane.
Z góry wielkie dzięki za pomoc.

0

zamiast

_obj.WejdzNaStrone(_listaLinkow[j], _listaProxy[i], Convert.ToInt32(this.nudTimeout.Value));

uruchamiasz watek (w ktorym jest obj) i w nim wykonujesz ta instrukcje (jako parametr przekazujesz _listaLinkow[j], _listaProxy[i], Convert.ToInt32(this.nudTimeout.Value)). Poczytaj jakikolwiek tutorial o watkach

http://www.albahari.com/threading/

0

Poradziłem sobie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1