Ładny brzuch

Witam!
Pojawiam sie tutaj z kolejnym pytaniem .. mam nadzieje ze dla wielu ten problem to nei problem :D
Otoz chodzi mi o to ze zaczynajac watek w programie:

wynik = BeginThread(NULL, 0, Wyliczenia, this, 0, W_PD);

rozpoczyna sie watek czyli funkcja

int __fastcall Wyliczenia1(Pointer Parameter)

jak zrobic zeby rozpoczynajac watek wykonywala sie funkcja np.

int __fastcall Wyliczenia(AnsiString tekst)

ktora za parametr przyjmuje zmienna tekst ??
Mam z tym problem :| Licze na Wasza pomoc :) Pozdrowka



funkcja ThreadFunc ma z gory narzucona budowe i nie mozesz dac do BeginThread funkcji o innej budowie.

pozdrawiam
pepsi^no1

a czy istnieje moze jakis sposob ktorym mozna ominac ta niedogodnosc?? :D

ale co chcesz zrobic?
zawsze przeciez w funkcji obslugujacej watek mozesz wywolac co chcesz...
int __fastcall tFunc(Pointer Parameter) {  inna_funkcja("jestem wesolym parametrem typu String :]"); }

pozdrawiam
pepsi^no1



chce zrobic tak ... mam funkcje ktora cos tam robi (na podstawie parametrow przekazywanej tej funkcji ... i teraz chcialbym zeby rozpoczynajac ten watek mog przelac funkcji ktora wykonuje sie podczas watku i wyslaj ja z jakis parametrem .. :)

Poza tym inne pytanie przy okazji mam .. jak zrobic serwer z wykorzystaniem TServerSocket wykorzystujac watki? :) Bardzo mile widziane sa wszelkie pomysly :D

z twoich przejrzystego wytlumaczenia ;) wyciagnalem wniosek ze chcesz przekazac do watku parametr tak? ;]
wiec mozesz to zrobic za pomoca jakiejs zmiennej globalnej w sensie ze przed wywolaniem watku do zmiennej globalnej String zm wpisujesz co chcesz a w funkcji kozystasz ze zmiennej zm, ale to sredni pomysl.
mozesz tez przeslac parametry na przyklad tak, ale nie wiem czy to do konca poprawny sposob ;)
struct sParams  {    String txt;    int count;  }; int __fastcall tFunc(Pointer Parameter) {   sParams *ptr = (sParams *)Parameter;   for(int i=0;i<ptr->count;i++)     MessageBox(0,ptr->txt.c_str(),ptr->txt.c_str(),0);   delete ptr;   return 0; } void __fastcall TForm1::Button1Click(TObject *Sender) {   sParams *ptr = new sParams;   ptr->count = 3;   ptr->txt = "elou :]";   BeginThread(NULL,0,tFunc,ptr,0,tID); }

pozdrawiam
pepsi^no1

Niestety nie dziala to tak jak chcialem .. ale i tak wielkie dzieki za informacje :D

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •