mario1983 Opublikowano 2 Stycznia 2006 Zgłoś Opublikowano 2 Stycznia 2006 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...