ThreadID()

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

ThreadID()

Beitrag von Rudolf »

Hallo,
habe ein Problem die aktuelle Thread ID auszulesen. Ich starte den Thread ganz normal, er ist auch mit threadinfo() ersichtlich, aber threadid() bringt immer 0. Sollte doch die aktuelle ID zurückgeben.
Grüsse
Rudolf

Beispiel:

Code: Alles auswählen

function tab_auftrag()
******************************************************************
local o:=Thread():new()
local bBlock := {||_tab_auftrag()}
o:Start(bBlock)
return .t.

FUNCTION _tab_auftrag()
******************************************************************
dcqdebug threadid() // ergibt immer 0
dcqdebug ThreadInfo( THREADINFO_TID  + THREADINFO_SYSTHND  + THREADINFO_FUNCINFO + THREADINFO_TOBJ ) // Thread ist ersichtlich
....

hschmidt
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 164
Registriert: Mo, 09. Jan 2006 17:06
Wohnort: Paderborn
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: ThreadID()

Beitrag von hschmidt »

Hallo Rudolf,

bei mir funktioniert das einwandfrei.
Ich setze aber noch die Version 1.90.331 ein. Welche ThreadId wird denn im 1 Arrayelement von ThreadInfo() zurückgegeben? Das sollte doch mit der Rückgabe von ThreadID() identisch sein (ist bei mir auch der Fall).

Schöne Grüße

Hans
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: ThreadID()

Beitrag von Rudolf »

Hallo Hans,
es funktionert auch normalerweise, bei anderen Funktionen in Threads kommt die korrekte ID zurück. Aber in diesem Fall komischerweise nicht. Finde auch keine Unterschied zur Art wir der Thread gestartet wird. Im Debugger kommt dann natürlich immer der Thread bei threadid() zurück, in dem der Debugger läuft. Glaube nicht dass es an der XBase++ Version liegt.
Grüsse
Rudolf
Antworten