c # - Er min tråd i Klar køen?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skal logge, hvornår og hvor længe en bestemt tråd er i Klar køen.
Jeg spekulerer på, om der er en programmatisk måde at gøre det med C #.
Fortæl mig, hvis du har brug for flere oplysninger ...


Tak på forhånd,
Rotem Varon.

Bedste reference


Du kan tjekke egenskaben ThreadState af objektet Thread.


Se mulige værdier her: http://msdn.microsoft.com/en-us/library/system.threading.threadstate.aspx[6]


WaitSleepJoin indikerer, at det venter på noget, Running betyder det 's i' ready queue 'så vidt jeg ved. Håber det hjælper.

Andre referencer 1


Oplysningerne om en tråds kerne-tilstand er tilgængelige i KTHREAD-kernestrukturen, der er tilgængelig gennem trådblokken i kernel-tilstand. [7]


Spørgsmålet er, hvordan man overfører det eller udsætter det for et program i brugertilstand? Sandsynligvis den bedste løsning givet tid og færdigheder er at skrive en kernel driver.


Alternativt kan du se til Windows Performance-tællere, som måske allerede gør det for dig. Under alle omstændigheder er du nødt til at ty til noget upræcise afstemning (du får ikke en meddelelse, når du ændrer tilstanden).


Win32\_Thread WMI-klassen kan være nyttig for dig, især feltet ExecutionState. [8]