Kommunikation mit Threads



  • Hallo,

    ich habe einen Thread:

    // Timer Thread
    DWORD WINAPI TimerThread(LPVOID ptr)
    {
    
    ....
    ....
        return 0;
    }
    

    diesen erstelle ich so:

    HANDLE hThread = CreateThread(NULL, 0, TimerThread, NULL, 0, NULL);
    

    Frage:
    Wie kann man nachdem der Thread schon erstellt wurde Parameter an diesen schicken?

    Danke



  • Über 'ptr' geht das nicht mehr, wenn du die Funktion schon aufgerufen hast...


  • Administrator

    filth schrieb:

    Frage:
    Wie kann man nachdem der Thread schon erstellt wurde Parameter an diesen schicken?

    Normalerweise übergibt man einem Thread alles was er braucht, wenn er erstellt wird, also über diesen LPVOID Parameter. Darüber kann man zum Beispiel eine Struktur, bzw. einen Zeiger auf so eine übergeben, woraus der Thread dann seine Informationen lesen kann. Zum Beispiel Zeiger auf weiter Variablen oder ähnliches.

    Eine eher unüblichere Art ist es, im Thread ein Message System aufzubauen. So könntest du Windows Nachrichten an den Thread senden und entsprechend auch Informationen übermitteln. Wie das Message Zeug funktioniert, suchst du am besten in der MSDN. GetMessage/PeakMessage als Funktionsstichwörter.

    Im übrigen, falls du eine gute C++ Thread Bibliothek suchst, welche zum Beispiel auf Windows die WinAPI Threads kapselt, dann schau dir mal Boost.Thread an.

    Und als letztes:
    Was hat das mit Standard C++ zu tun? Das gehört wohl eher in den WinAPI Bereich 😉

    Grüssli


Anmelden zum Antworten