Instanze an Thread übergeben



  • Servus,

    Ist es möglich das ich an einen Thread eine Instanz übergeben. Also etwa so:

    void *setElements() {
         while(true) {
            mk->setElementsToMatrix();
         }
    }
    
    int main(int argc, char *argv[]) {
        MatrixKlasse *mk = new MatrixKlasse(...);
        int iret1 = pthread_create(&thread_ViewMatrix, Null, setElements, mk);
    }
    

    Bei dem ganzen geht es um einen Roboter der sich bewegt. Und so lange er sich bewegt soll alles was er sieht in eine Matrix übertragen werden. Die Matrix ist in der Instance mk und soll ständig durch die Funktion setElementsToMatrix beschrieben werden. Wenn der Roboter nichts mehr zu sehen hat soll er anhalten und ich lasse mir von meiner Funktion mk->wenigGesehen die Felder zurückgeben die ich am wenigsten oft gesehen habe.
    Kann mir da einer helfen, oder ist mein Ansatz mit dem Thread und der Instanze schon total doof?

    Dank und Gruß
    flambert



  • zunächst solltest du in jedem Fall vermeiden, dass Objekte in 2 Threads leben. Ein Objekt im Nebenthread sollte auch dort erzeugt werden.

    Als ich zu dem Punkt gekommen bin, dass ich ein Programm schreiben musste, was Mulithreadening und die Steuerung bestimmter Geräte können sollte, bin ich dazu übergegangen, Qt zu verwenden. Das kann ich wirklich weiterempfehlen, da die dort zur Verfügung gestellten Funktionen deutlich komfortabler sind als reines c++ (auch wenn man nicht GUI programmiert)


Anmelden zum Antworten