Worker-Thread bleibt stehen?



  • void CMTDlg::OnButtonStart() 
    {
    	AfxBeginThread(thrTest, this);
    	Sleep(10000);
    }
    
    static UINT CMTDlg::thrTest(LPVOID pParam)
    {
    	AfxMessageBox("bla");
    	return true;
    }
    

    Hi,
    also ich verstehe das nicht ganz. Überall lese ich immer unabhängige
    Thread voneinander erstellen ist ganz einfach, scheint auch so zu sein
    nur sind die bei mir "scheinbar" nicht unabhängig. Ich will jetzt absolut
    einfach nen Worker-Thread haben s.o.

    Wieso bekomm ich die MessageBox erst nach 10 Sek und nicht sofort, sollte
    thrTest nicht voll durchrennen wenn onButtonStart schläft 😕

    achja: Der ProcessViewer zeigt mir während des Sleeps schon den neuen Thread an..

    mfg
    tobi



  • Ist AfxMessageBox nicht ein Child des Hauptdialogs.

    Wenn du diesen Schlafen legst dann gibts auch keine Message zum Zeichnen.
    Ein Wokerthread ist auch nicht dafür da um Benutzereingabe zuzulassen. Deshalb unterscheidet man z.w. Woker und Benutzer Thread.



  • Ja ich habs schon gemerkt.

    War ein bischen blöd. Ich wollte mit der MsgBox prüfen ob der
    Thread arbeitet. Wenn ich ne Schleife mit nem Trace oder so
    mache funzt es einwandfrei.

    😉


Anmelden zum Antworten