für einen Threat mehrere Parameter übergeben
-
wenn man einen Threat starten will kann man ja Parameter übergeben, das sieht dann ja z.b. so aus:
My_Thread_Collect_Data_1(int para_1){} My_Thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)My_Thread_Collect_Data_1, (void *)para_1, 0, &ID_My_Thread);aber wie rufe ich diese Procedur korrekt als Threat auf:
My_Thread_Collect_Data_2(int para_1, int para_2, char *daten_1, char daten_2[256]){}ich komm leider nicht dahinter, hat hier einer den Plan wie das geht?
-
Pack alle nötigen Parameter in eine struct und übergib dann einen Zeiger darauf:
struct thread_data { int para_1; int para_2; char* daten_1; char daten_2[256]; } int Collect(void* param) { thread_data* data=static_cast<thread_data*>(param); if(data->para_1>0) ... } ... thread_data thdata={0x0815,4711,"Hallo","Welt"}; My_Thread = CreateThread(NULL, 0, Collect, &thdata, 0, &ID); ...
-
Mit mehreren Startparametern geht das nicht. Du musst ne Struktur verwenden und diese dem Thread übergeben.
struct CollectData { int para_1 int para_2 char *daten_1 char daten_2[256] } CollectData Data; // Die Members der CollectData Struktur füllen... CreateThread(NULL, 0, My_Thread_Collect_Data_1, (void *)Data, 0, &ID_My_Thread); // Threadroutine My_Thread_Collect_Data_1( LPVOID data ) { CollectData Data = data; }
-
Und es heißt "Thread".
-
obwohl Threads auch eine Bedrohung sein können ^^ (sry den konnt ich mir net verkneifen)