【发布时间】:2011-12-07 09:00:26
【问题描述】:
我目前正在尝试监控我的项目的性能。当我枚举所有物理线程 (Process.GetCurrentProcess().Threads) 时,处理器花费的总时间远低于进程本身的总处理器时间。线程数量稳定,几乎没有我可以错过的线程(可能直到我打开监控窗口)。这是为什么呢?
我也遇到了 InvalidOperationException 的问题:线程已经退出(当我读取 TotalProcessorTime 时)。但是,当我查找线程的状态时,它是 Waiting。如何规避异常?
谢谢
【问题讨论】:
-
任何已终止的线程都不会包含在您的枚举中,但它们的处理器使用情况会影响总进程数。
-
@RaymondChen:我是在应用程序启动后立即开始监控的,所以我怀疑任务在我开始监控之前终止会造成如此巨大的差异。
标签: c# multithreading winapi