我正在寻找有关如何在VC++中的进程中查找单线程的CPU利用率的工具。

如果有人可以给我提供一种工具,那就太好了。

如果你们提供以编程方式进行操作的方法也可能会更好。

先感谢您。

最佳答案

也许使用GetThreadTimes会有所帮助?

要详细说明该线程是否属于另一个可执行文件,可能是以下行中的内容(未经测试):

// Returns true if thread times could be queried and its results are usable,
// false otherwise. Error handling is minimal, considering throwing detailed
// exceptions instead of returning a simple boolean.
bool get_remote_thread_times(DWORD thread_id, FILETIME & kernel_time, FILETIME & user_time)
{
  FILETIME creation_time = { 0 };
  FILETIME exit_time = { 0 };
  HANDLE thread_handle = OpenThread(THREAD_QUERY_INFORMATION, FALSE, thread_id);
  if (thread_handle == INVALID_HANDLE) return false;

  bool success = GetThreadTimes(thread_handle, &creation_time, &exit_time, &kernel_time, &user_time) != 0;

  CloseHandle(thread_handle);
  return success;
}

关于c++ - 如何查找进程中单线程的CPU使用率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1199920/

10-11 01:04