Frage zu GetThreadPriority



  • Hallo Community!

    Folgendes Problem:
    Ich führe eine Liste, in welcher ich mir die Handles aller erzeugten Threads im
    Prozess merke. Diese enthält auch noch weitere normalerweise nicht vorhandene
    Informationen zu dem jeweiligen Thread.

    Da ich nicht von jedem Thread mitbekomme wann sich dieser beendet, habe ich mir
    jetzt gedacht ich machs mir einfach und schaue für jedes gespeicherte Handle
    nach, ober der jeweilige Thread noch läuft. Dafür gibts die Funktion

    DWORD WINAPI GetThreadId(
      _In_  HANDLE Thread
    );
    

    Allerdings nicht auf XP wo das System auch noch laufen soll. Also weitergesucht und

    int WINAPI GetThreadPriority(
      _In_  HANDLE hThread
    );
    

    gefunden.

    Jetzt zur eigentlichen Frage:
    Kann ich davon ausgehen das sobald mir diese im return ein

    THREAD_PRIORITY_ERROR_RETURN
    

    meldet, der jeweilige Thread nicht mehr vorhanden ist bzw. läuft?

    Mir ist klar das das keine sehr schöne Lösung ist, allerdings solls halt laufen 😉



  • Die sichere Variante ist

    WaitForSingleObject(hThread, 0) == WAIT_OBJECT_0
    


  • Super!

    Danke für die schnelle Antwort Jochen. Das ein Thread - Handle als signaled gilt sobald der Thread beendet ist wusste ich noch nicht.


Anmelden zum Antworten