Threads richtig erzeugen/ verwenden



  • Hallo,

    ich habe vor einer Ewigkeit hier im Forum mal einen Beitrag gesehen
    in dem es um Threads ging. Da ich diese nun auch in meiner Anwendung
    (MFC dialogbasierend) benötige wollte ich mal fragen wie man Threads
    richtig erzeugt und auch wieder beendet.

    Bislang habe ich folgendes gemacht und bin mir nicht sicher ob
    man es so verwenden sollte:

    //Thread starten:
    
    m_Flag = 1; //int
    CWinThread* pThread = AfxBeginThread (thrFunction, this); 
    
    //Thread stoppen:
     m_Flag = 0; //stoppt den thread
    
    //Funktionen zum Thread
    
    UINT CThreadtest1Dlg::thrFunction(LPVOID pParam)//deklariert als static
    {
     CThreadtest1Dlg* pDlg = (CThreadtest1Dlg*) pParam;  //Threadtest1dlg ist der Projektname
      pDlg->more();  // more ist eine zu startende eigene funktion
    
       return 0; 
    }
    
    //aufgerufene Funktion, die die eigentliche Arbeit erledigt:
    void CThreadtest1Dlg::more()
    {
    
    while (m_Flag)  
      { 
         Sleep(1000); 
    irgendeienandere_funktion();
    MessageBox("Test","123");
      } 
    
    }
    

    Falls das Konstrukt schlimm oder gar grundsätzlich falsch ist, würde ich mich
    freuen, wenn ihr mir zeigen könntet wie es anders geht.



  • Edit: Gibts dazu ein gutes Tutorial oder wie wäre es mit einem Artikel? 🙂


Anmelden zum Antworten