2012-09-24 34 views
6

Tôi đang quan sát một chương trình và muốn giết nó, nếu một thời gian ở trạng thái "wait: executive".Tôi làm cách nào để có được trạng thái của một chương trình?

Đây là một ảnh chụp màn hình của Process Explorer:

State: wait:executive

Làm thế nào tôi có thể nhận được trạng thái đó bằng cách mã? Hoặc có thể nói cho tôi biết ai đó có ý nghĩa gì? Điều này có thể giúp tôi tìm đúng truy vấn để giải quyết vấn đề của tôi.

+0

Thông tin có thể trong ngưỡng trong PCB của một quá trình. Đây có phải là cửa sổ 8 không? – nullpotent

+0

Không có gì trong Windows 7. – rekire

+2

Hoàn toàn bình thường đối với chủ đề chính của ứng dụng đang chờ –

Trả lời

2

Nó không phải là trạng thái của chương trình nhưng nó bang thread.Một quá trình có thể có nhiều chủ đề.

Bạn có thể gọi WaitForSingleObject để xác định một số tiểu bang.

Ngoài ra, bạn có thể khởi tạo WMI bằng COM và chọn Win32_Thread class.

Here is some example.

Thông tin thêm ở đây: How to determine that a win32 thread is either in Wait or Join or Sleep state in c++

+0

Cảm ơn bạn đã gợi ý đó. Tôi cần một chút thời gian để hiểu và thực hiện điều đó. – rekire

2

Nó có nghĩa là chủ đề đang chờ đợi scheduler/một thành phần của hành

Nó có thể được lấy với WMI Win32_Thread (hoặc .net System.Diagnostics.ProcessThread WaitReason)

Các vấn đề liên quan