CreateThread



  • hallo ich habe angefangen mich mit threads zu beschäftigen fand auch ein super tutorial mit beispielen.
    Aber ich verstehe eine Zeile nicht ganz so:

    HANDLE hThread[MAX_THREADS]; 
    DWORD dwThreadID[MAX_THREADS]; 
    
       ... ... ... 
    
    for (int index=0; index<MAX_THREADS;index++) 
    { 
       hThread[index] = CreateThread( NULL, 
                                      0, 
                                      ThreadFunc, 
                                      (LPVOID)index, 
                                      0, 
                                      &dwThread[index] 
                                     ); 
    }
    

    Was hat das

    (LPVOID)

    für eine Bedeutung.

    In dem Tutorial wird der Parameter so beschrieben:

    LPTHREAD_START_ROUTINE lpStartAdress - Hier wird die Adresse der Funktion angegeben, die der Thread beim Start aufrufen soll.

    Weiß nicht so recht weiter.
    Hoffe auf Antworten.



  • /*deleted*/
    


  • Also ich wollte einfach ne erklärung keinen Code.
    -.-



  • (LPVOID)
    

    Ist ein Typ-Cast...
    LPVOID ist in dem falle ein Pointer vom Typ void...

    Somit kannst du deine int-Variable an CreatThread übergeben, trotzdem da eigentlich eine Variable vom typ LPVOID erwartet wird...
    Casten ist öfters mal in benutzung..

    Ich hoffe ich habe dir damit geholfen.. Ob alles 100% richtig ist weiß ich nicht aber im groben stimmt das schon xD

    @Erhard Henkes: Sry aber Dein Code past gerade gar nicht, ist dir bewusst ne? Du bringst ein "_beginthread" wobei es um "CreatThread".. nein eher um TYPECASTS geht.. 😉

    Wenn du ein Beispiel bringst solltest du eventuell was dazu schreiben?


Anmelden zum Antworten