2012-09-24 19 views
6

Obserwuję program i chcę go zabić, jeśli jest przez pewien czas w stanie "wait: executive".Jak mogę uzyskać stan programu?

Oto zrzut ekranu z Process Explorer:

State: wait:executive

Jak mogę dostać ten stan za pomocą kodu? A może mógł mi powiedzieć ktoś, co dokładnie oznacza ten stan? To może pomóc mi znaleźć właściwe zapytanie, aby rozwiązać mój problem.

+0

Informacje powinny być gdzieś w PCB procesu. Czy to jest Windows 8? – nullpotent

+0

Nie jest to w Windows 7. – rekire

+2

To normalne, że główny wątek aplikacji czeka –

Odpowiedz

2

To nie jest stan programu, ale jest to stan thread.One proces może mieć wiele wątków. Aby uzyskać pewne stany, można zadzwonić pod numer WaitForSingleObject.

Możesz także utworzyć instancję WMI za pomocą COM i wybrać Win32_Thread class.

Here is some example.

Więcej informacji tutaj: How to determine that a win32 thread is either in Wait or Join or Sleep state in c++

+0

Dziękuję za wskazówki. Potrzebuję trochę czasu, aby to zrozumieć i wdrożyć. – rekire

2

Oznacza to, że wątek czeka na scheduler/składnika wykonawczej

mogą być pobrane z WMI Win32_Thread (lub .net System.Diagnostics.ProcessThread WaitReason)

Powiązane problemy