Przekazanie wskaźnika obiektu do nowego wątku.

0

W projekcie potrzebuje użyć dodatkowego wątku, mam z tym styczność pierwszy raz.
Stworzyłem klasę Kontener, z metodą dodaj (cObiekt).
Metodę PhreadProc która tworzy i dodaje obiekty do kontenera. Kontenera na który wskaźnik chce przekazać jako argument funkcji.

void __cdecl ThreadProc( Kontener *  A ) //// co wpisać tu w nawiasie 
{
cObiekt t(10,53,50,19,02,4000,10,10);
cObiekt a(1,51,5,14,10,40,10,10);
cObiekt d(2,47,0,24,02,40,10,10);
A->dodaj(t);
A->dodaj(a);
A->dodaj(d);
    _endthread();
}



int main(int argc, char* args[])
{
Kontener *A;
A = new Kontener;
Wyswietlacz B;
B.wyswietl(A);
HANDLE hThread =( HANDLE ) _beginthread( ThreadProc(A), 0, NULL ); // co wpisać tu ThreadPeoc(???????)
}
 

Próbowałem też rzutowania,
ale gdy przekazuje (PVOID)A i rzutuje (Kontener*)A->dodaj(t) to wypisuje błąd, że to nie pointer na obiekt.

0
void ThreadProc(void *param)
  {
   Kontener *A=(Kontener*)param;
   cObiekt t(10,53,50,19,02,4000,10,10);
   cObiekt a(1,51,5,14,10,40,10,10);
   cObiekt d(2,47,0,24,02,40,10,10);
   A->dodaj(t);
   A->dodaj(a);
   A->dodaj(d);
   _endthread();
  }

int main()
  {
   Kontener *A=new Kontener;
   Wyswietlacz B;
   B.wyswietl(A);
   uintptr_t hThread=_beginthread(&ThreadProc,0,A);
   //lub
   //HANDLE hThread=(HANDLE)_beginthread(&ThreadProc,0,A);
   return 0;
  }
0

Po wstawieniu tego wypisuje mi błąd:

|276|error: invalid conversion from 'long unsigned int' to 'void*'|

276:

  HANDLE hThread=_beginthread(&ThreadProc,0,A);

Czy chodzi o problem w konwersji A na Void*?

0

Jak to powinno wyglądać, bo po napisaniu:

 uintptr_t _beginthread(&ThreadProc, 0, A );

Wyrzuca błąd:

|276|error: initializer expression list treated as compound expression|
|276|error: invalid conversion from 'Kontener*' to 'uintptr_t'|

0

Po pierwsze nie

_beginthread(&ThreadProc,0,A);

a

_beginthread(ThreadProc,0,A);
</del>

Po drugie zobacz i poczytaj http://msdn.microsoft.com/en-us/library/aa246693(v=vs.60).aspx. Szczególnie przykładowy kod na dole.

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