CString im Thread problem



  • Hallo

    ich habe ein Problem mit meiner Strinverarbeitung im Thread. Und zwar stürtzt er immer ab, sobald ich einem String einen Wert zuweisen will.

    Folgender Code:

    AfxBeginThread(StarteXY,this,TRHEAD_PRIORITY_NORMAL);
    this->g_eventSart.SetEvent(); //member von CEvent
    
    //Thread
    UINT StarteXY(LPVOID pParam)
    {
        CTestDlg* pDlg = (CTest*) pParam;
        while ( ::WaitForSingleObject(pDlg->g_eventKill,0) != WAIT_OBJECT_0 )
        {    
            ....
            pDlg->SubMethode();
        }
        return 0;
    }
    
    void CTestDlg::SubMethode()
    {
        CString str_Temp;
        str_Temp = "1234"; //und hier passiert es dann
    }
    

    das einzigste, was ich an Fehlerausgabe habe ist dieses hier:

    HEAP: Free Heap block 1274d90 modified at 1274db8 after it was freed
    


  • Dein Problem entsteht woanders.

    z.B. ... wenn du in dem Thread schon auf den Dialog zugreifst solltest du wohl auch sicherstellen dass der Dialog nicht zerstört wird bevor der Thread terminiert hat.
    D.h. du musst nach dem SetEvent() darauf warten dass der Thread terminiert.


Anmelden zum Antworten