Threadfunktion



  • Ich möchte den Zeiger auf die Threadfunktion an eine Funktion übergeben, in der ich dann mittels ebendieser Thradfunktion den Thread aufrufe. Und das klappt nicht (siehe Fehlermeldung)!

    😕



  • Pardon, hatte den Text nur schnell überflogen - dachte FillList ist deine Thread Funktion.

    Nutze einfach AFX_THREADPROC statt pFUNC.



  • void CFillListenSocket::FillList(AFX_THREADPROC pFunc,LPVOID pParam )
    {
    CWinThread pThread=AfxBeginThread(pFunc);
    }

    Das gibt genau die gleiche Fehlermeldung. 😞



  • Jetzt sehe ich es. 🙄
    Du nimmst auch die falsche Überladung von AfxBeginThread.
    Du musst mindestens 2 Parameter angeben.

    btw: AfxBeginThread gibt einen Zeiger auf ein CWinThread-Objekt zurück.



  • void CFillListenSocket::FillList(AFX_THREADPROC pFunc,LPVOID pParam )
    {
    CWinThread* pThread=AfxBeginThread( pFunc,pParam);
    }

    Hast recht, habe ich auch gemerkt, und außerdem muss natürlich CWinThread[u]* heißen.
    Vielen Dank! 🙂



  • Ich hoffe du bist noch da.

    static UINT MyUpdateList(LPVOID pParam);
    
    UINT CFillListenSocket::MyUpdateList(LPVOID pParam)
    {
    	for(short i=0;i<m_oaSockets.GetSize();i++)
    	{
    		if( ((CFillSocket*) m_oaSockets.GetAt(i))==(CFillSocket*)pParam)
    			continue;
    		Sleep(0);
    		CString str;
    		str.Format("%d",UPDATEKALENDAR);
    		((CFillSocket*)m_oaSockets.GetAt(i))->Send(str,str.GetLength());
    		Sleep(100);
    	}
    	return 1;
    
    }
    

    Jetzt meint der Compiler er kennt das m_oaSockets nicht, obwohl es privat deklariert ist. Hmh?????????



  • Ich glaub ich weiß schon, m_oaSockets muss auch statisch sein! 🙂



  • Kann ja auch nicht gehen da deine ThreadFunktion static ist (static Funktionen haben keine this-Zeiger).

    Starte deinen Thread mit AfxBeginThread. Als Parameter wird der Zeiger auf deine Klasse übergeben. In der ThreadFunktion startest du mit Hilfe des Zeigers deine Methode die du ausführen möchtest.



  • Hört sich auch gut an. Ich hab das Ganze jetzt sowieso viel leichter gemacht. Läuft auch gut soweit. Bin schon zwei Probleme weiter. Hab im Moment Ärger mit ner Sql-Abfrage. Vielen Dank für deine Hilfe.



  • Gut Nacht! 🕶


Anmelden zum Antworten