Skocz do zawartości
mario1983

Klopoty Z Tthread...:(

Rekomendowane odpowiedzi

Witam....

Co do pracy na watkach nie moge sie niczym pochwalic i przyznam ze jestem w tym "nowy"....

Tworze program wymiany plikow przez siec....Watki sa potrzebne po to aby mozna bylo pobierac badz wysylac wiecej anizeli jeden plik...

 

Klopot polega na tym iz mam dwa watki....

Jeden jest obiektem klasy wysylajacej plik (dziedziczy od Tthread)

Drugi watek zas jest obiektem klasy odbierajacej plik (dziedziczy od Tthread)

Tak wiec mam 2 klasy watkow.

 

Tworze je w ten sposob:

Get* watek1=new Get(true);

Send* watek2=new Send(true);

 

Jako parametry konstruktorow podaje true wiec watki sa tworzone ale rowniez zawieszone, budzimy je funkcja Resume();

 

Wszystko dziala gdy wysylam plik ktory miesci sie w jednym pakiecie....

Wowczas jeden watek otrzymuje Resume(), wysyla pakiet ktory prawia ze uruchamia sie drugi watek ktory zapisuje plik...

 

Jednak gdy plik musi byc przeslany w wiecej niz jednym pakiecie pojawia sie juz problem. Mianowicie pierwszy watek wysyla plik( watek2->Resume()), drugi watek odbiera i wysyla komende pobrania nastepnej porcji pliku (watek1->Resume()), po czym znow wykonuje watek2->Resume() i w tym momencie stwarza sie problem. MIanowicie watek sie nie uruchamia.:(

 

Nie wiem dlaczego....Byc moze nie uzywam ktorychs z tych funkcji klasy TThread, (uzywam tylko Resume()). Wyglada na to ze watek pierwszy raz daje sie uruchomic zas drugi raz juz nie :(

Moze mial ktos juz podobne problemy??

Jezeli tak to prosze o jakies porady....najlepiej poparte przykladem.

Dodam jeszcze iz owy program bez watkowosci dziala w pelni.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...