title image


Smiley Re: Struktur an Win-Threads übergeben
Ok, als erstes die Thread-Prozedur:





DWORD WINAPI ThreadProc(LPVOID lpParameter)

{

// Einen Zeiger auf die Struktur!

DEINESTRUKTUR* pStruktur = (DEINESTRUKTUR*)lpParameter;

// Einen Wert ändern

pStruktur->einFeld = 10;

}





Nun der Start des Threads:





DWORD IDThread;

void StartThread()

{

DEINESTRUKTUR* pStruktur = (DEINESTRUKTUR*)malloc(sizeof(DEINESTRUKTUR);

// Nun den Thread starten

hThread = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)ThreadFunction,pStruktur,0, &IDThread);

}





Es muss der Zeiger auf die Struktur übergeben werden! Habe im Beispiel absichtlich malloc verwendet. Würdest Du





DWORD IDThread;

void StartThread()

{

DEINESTRUKTUR Struktur;

// Nun den Thread starten

hThread = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)ThreadFunction,&Struktur,0, &IDThread);

}





ausführen, würde es zu einem Laufzeitfehler kommen. Der Thread startet und kehrt zur Funktion StartThread zurück. Beim Verlassen der Funktion StartThread wird Struktur wieder zerstört obwohl der Thread nocht darauf zugreifen könnte.



Ciao


Wenn man eine Entwicklung in der Informatik verstanden hat, ist sie bereits veraltet!

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: