Я пытаюсь получить загрузку ЦП каждого из (до 200) потоков в моем приложении (Delphi XE). Чтобы подготовиться к этому, я передаю PdhExpandWildCardPath строку '\Thread(myappname/*)\% Processor Time'
. Однако (в Win7 / 64) буфер, возвращаемый из этой функции, возвращает строку для каждого потока, работающего в системе, другими словами, он, кажется, рассматривал ввод, как если бы он был '\Thread(*/*)\% Processor Time'
. Это было неожиданно. То же самое происходит, когда я впоследствии раскрываю строку, чтобы получить «ID Thread».
Очевидно, что я могу отфильтровать получающиеся строки по имени приложения и добавить только те счетчики, которые мне нужны, но это требует многих сотен проверок подстрок. Я неправильно истолковал, как работают символы подстановки?