containerliste als Parameter in einen thread



  • Hallo zusammen,

    Ich habe eine Klasse A, die unter anderem eine Container-list (mit Zeigern auf eine Klasse 😎 und einen thread beinhaltet. Wie kann ich in diesem Thread nun auf diese Container-list zugreifen? Also wie muss ich diesen Zeiger auf die Container-list in den Thread übergeben? Mein folgender code funktioniert so leider nicht:(

    class A
    {
    public:
    
    static void* ReaderThread(void *param )
    {
        list <B*> Objects_list = param;
    
        // here is the thread code working with the Objects_list...
    }
    
    list <B*> Objects;
    
    };
    // Constructor
    A::A()
    {
    
    //Kick off the reader thread
    rc = pthread_create( &readerThreadId, NULL, ReaderThread, &Objects);
    
    }
    

    Vielen Dank schon im voraus!

    Viele Grüsse Fabian





  • Vielen Dank für die schnelle Antwort. Leider verstehe ich diesen Code nicht bis ins letzte Detail. Ich denke, es muss doch einen einfacheren Weg geben aus dem Thread auf eine list zuzugreifen?
    Bei einem int geht die Uebergabe ja auch einfacher?



  • Ja klar geht das, bietet dir aber so die Möglichkeit auf noch viel mehr Daten zuzugreifen, als nur die Liste!

    class A
    {
    public:
        static void* ReaderThread(void *param )
        {
            std::list<bar*>* list_objects = static_cast< std::list<bar*>* >(param);
            // TODO: Use *list_objects
        }
    };
    
    // Constructor
    A::A()
    {
        //Kick off the reader thread
        ::pthread_create(&readerThreadId, NULL, &A::ReaderThread, &Objects);
    }
    

    ...


Anmelden zum Antworten