WinAPI Thread je Instanz einer Klasse...



  • Hallo Ich würde gern eine MyThread Klasse implementieren, welche je Instanz die WinAPI32 CreateThread Methode verwendet.
    Ich verwende (und kann nur) die C++03 STL verwenden, und kann somit nich die stl:thread verwenden.
    Problem ich kann ja keine klass member methode als thread-functor verwenden... oder doch?

    Grund für das ganze , ich habe mehrer COM ports welche ich bei einem ReceiveEvent wartet jeweile in einem thread laufen lassen...

    was meint ihr? gibts ne alternative (ohne nen höhere stl zu verwenden)?



  • Ich verwende (und kann nur) die C++03 STL verwenden,

    Tja.

    boost?



  • Wo ist das Problem? CreateThread kannst du einen belibigen Parameter übergeben, z.B. einen Zeiger auf deine Klasseninstanz.



  • genau. Übergib doch einfach dein Klassenobjekt an den Thread.
    Bzw. einen nach (void*) gecasteten Pointer auf dein Objekt. Und im Thread castest du dir das wieder zurück und gut ist.



  • hmm... gute idee.😃 . vor lauter bäumen den wald nich sehen

    dachte da sich der functor für create thread sich um eine statische klassen methode handelt, jeder thread dann die gleichen functor verwendet...



  • Gerade wenn man noch auf C++03 festhängt ist Boost eine feine Sache. Damit kannst du viel was erst mit C++11 in den Standard gekommen ist ihn ähnlicher, oft fast identischer Form auch mit C++03 verwenden.
    Darunter auch Threads.


Anmelden zum Antworten