Это продолжение Сколько времени проведено в .NET Thread?
Я знаю, как я могу измерить время процессора в потоке (http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx),, но яЯ не знаю, как измерить IO ожидания потока. Поток ожидает IO, прерывается. Пока другие потоки выполняются, IO-операция нашего потока заканчивается, мы возвращаемся к нашему потоку, мы останавливаем секундомер, но он показывает неправильно большое времяЕсть идеи по этому поводу?
Вам нужно сделать это специально в коде?Если вы используете WinDbg, вы можете использовать! Runaway для получения времени ЦП каждого потока как для режима ядра, так и для режима пользователя http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/08/20/special-command-cpu-time-for-each-thread-with-runaway.aspx.
В качестве альтернативы вы можете использовать ProcessExplorer.Если вы дважды щелкните по процессу, вы можете получить эту информацию на вкладке темы.http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx.
В качестве альтернативы этот поток на C ++ Как получить информацию об использовании процессора для каждого потока в Windows (win32) содержит информацию о вызовах Win32 API.