GetExitCodeThread(*,*)
-
ja, abbruch is ne member
hab nur das this vergessen *zwinka*
aber das hört sich gut an
ich proebiere das gleich aus
danke schonmal
-
...dann must du aber auch innerhalb deiner Threadfunktion auf abbruch reagieren und nicht im dialog.
Edit: .. machst Du schon
...war gestern bei Robbie 
-
Gerade noch einen Fehler entdeckt. Mich hat das GetExitCodeThread schon vorhin gestört, dass du dem einen Zeiger auf deine Funktion übergibst, doch ich habe damit noch nie gearbeitet und deshalb nicht weiterüberlegt. Nun habe ich allerdings endlich in der MSDN nachgeschaut und siehe da ... GetExitCodeThread verlangt ein Handle auf deinen Thread und einen Zeiger auf eine DWORD Variable. Ich habe es oben editiert und führe es hier nochmals auf:
DWORD dwExitCode = 0; GetExitCodeThread(m_pThread->m_hThread, &dwExitCode);Grüssli
-
jepp, das tu ich ja auch
dann beende ich den thread
-
Dravere schrieb:
Gerade noch einen Fehler entdeckt. Mich hat das GetExitCodeThread schon vorhin gestört, dass du dem einen Zeiger auf deine Funktion übergibst, doch ich habe damit noch nie gearbeitet und deshalb nicht weiterüberlegt. Nun habe ich allerdings endlich in der MSDN nachgeschaut und siehe da ... GetExitCodeThread verlangt ein Handle auf deinen Thread und einen Zeiger auf eine DWORD Variable. Ich habe es oben editiert und führe es hier nochmals auf:
DWORD dwExitCode = 0; GetExitCodeThread(m_pThread->m_hThread, &dwExitCode);Grüssli
jo sicher; stand da ja auch; aber da ich den zeiger bis eben noch nicht zugewiesen hatte, habe ich halt die funktion übergeben

-
hey, es funktioniert *ggg*
dankeschön

-
Boch mal was grundsätzliches, wenn man CWinThread* m_pThread = AfxBeginThread(...); ausführt, dann zerstört sich das CWinThread Objekt sofort wenn der Thread terminiert. Wenn man also noch was kontrollieren will, oder gar auf den Thread warten will, dann muss man m_bAutoDelete auf FALSE setzen und das Objekt selber per delete entsorgen!
-
Ups ... da hat er sogar recht.
Ehm ... aber wenn man m_bAutoDelete verändert, sollte man dann den Thread nicht mit CREATE_SUSPENDED starten? Bzw. als Codeausschnitt:m_pThread = AfxBeginThread(AuswertungStarten, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED); if(m_pThread != NULl) { m_pThread->m_bAutoDelete = FALSE; m_pThread->ResumeThread(); } else { // Thread konnte nicht gestartet werden. }Grüssli
-
alles klar
hab ich jetzt alles auch so gemacht
nur: wie lösche ich den thread? einfach mit Delete(); ?
Edit: Neee, er wirft mir zwar keinen Fehler aus, aber dafür Memory Leaks *wein*
-
Nicht Delete() sondern delete!