kann man herausfinden, welcher Thread auf auf eine Prozedur zugreift? Dabei spielt es keine Rolle, ob es der Hauptthread ist oder irgend ein anderer. Ich bräuchte nur so eine Art ID, um verschiedene Threads voneinander zu unterscheiden.
Ich habe folgendes vor....
Damit ich später mögliche Programmfehler besser lokalisieren kann (während der Laufzeit), entwerfe ich ein Logging-System. Dabei werden in die Logdatenbank verschiedene Daten über den Programmablauf protokolliert. Unter anderem soll es möglich sein, Prozeduraufrufe rekursiv zu verfolgen.
vereinfachtes fiktives Log-Beispiel:
Code: Alles auswählen
Prozedur A gestartet
Prozedur B gestartet
Prozedur C gestartet
Prozedur D gestartet
Prozedur D beendet: Erfolgreich
Prozedur E gestartet
Prozedur E beendet: Erfolgreich
Prozedur C beendet: Erfolgreich
Prozedur B beendet: Fehler
Prozedur A beendet: Fehler
Prozedur X gestartet
Prozedur Y gestartet
Prozedur Y beendet: Erfolgreich
Prozedur X beendet: Erfolgreich
Code: Alles auswählen
Prozedur A: Fehler
Prozedur B: Fehler
Prozedur C: Erfolgreich
Prozedur D: Erfolgreich
Prozedur E: Erfolgreich
Prozedur X: Erfolgreich
Prozedur Y: Erfolgreich
....Problem bei dieser Methode ist, dass bei mehreren Threads die Verarbeitung durcheinander geraten wird. So könnte z.B. 'Prozedur A' in der Logausgabe mehrfach geöffnet oder geschlossen werden. Um das zu verhindern würde ich noch eine Art Thread-ID hinzufügen, damit immer eindeutig ist, welcher Thread gerade welche Log-Nachricht gesendet hat.
Ist das möglich eine Thread-ID oder irgend ein handle zu ermitteln, um eine Eindeutigkeit zu erreichen?
viele Grüße,
SBond

