Witam wszystkich forumowiczów.
Mój problem ma związek z biblioteką LibCurl .NET lecz wydaje mi się ze ma to związek z ogólną budową języka.
Otóż w głównej klasie Form1 tworzę sobie metodę sekwencja():
public void sekwencja(object d)
{
daneWatku info = (daneWatku)d;
pobierzkod pobierz = new pobierzkod(info.adres);
while (true)
{
if (pobierz.sukces()) {
/* ... */
}
}
}
Metoda sukces klasy pobierz zwraca wartość bool jeżeli w kodzie strony został znaleziony pewien ciąg znaków.
W evencie przyciśnięcia button1 następuje utworzenie wątku z parametrem:
private void button1_Click(object sender, EventArgs e)
{
dane.adres = "jakistamadres";
ParameterizedThreadStart param = new ParameterizedThreadStart(sekwencja);
Thread watek = new Thread(param);
watek.Start(dane);
}
Problem pojawia się gdy w metodzie sekwencja wywołuję metodę pobierz z klasy pobierzkod odpowiedzialną za pobranie kodu. Otóż nie zostaje wykonana inna metoda a mianowicie:
public int OnWriteData(Byte[] buf, Int32 size, Int32 nmemb,
Object extraData){
wynik += Encoding.UTF8.GetString(buf);
MessageBox.Show(wynik);
return size * nmemb;
}
Metoda ta utworzona zostaje na potrzeby biblioteki LibCurl .Net. Powinna zostać wywołana kiedy wykonam pobierzkod.sukces() automatycznie jednak tak się nie dzieje. Co dziwne gdy klasę tą utworze nie w wątku lecz np. podczas ładowania Form1 wszystko działa elegancko i metoda wywołuje się.
Mam nadzieję, że ktoś pokonał zawiłość mojego problemu i jest w stanie odpowiedzieć na moje pytanie za co z góry dziękuję.
Pozdrawiam
Newbie123